diff -uNr wasmer-2.0.0/lib/vm/src/trap/traphandlers.rs wasmer-2.0.0.mod/lib/vm/src/trap/traphandlers.rs
--- wasmer-2.0.0/lib/vm/src/trap/traphandlers.rs	2021-06-16 04:59:00.000000000 +0800
+++ wasmer-2.0.0.mod/lib/vm/src/trap/traphandlers.rs	2021-09-20 09:30:49.491362030 +0800
@@ -207,6 +207,9 @@
                 if #[cfg(all(target_os = "linux", target_arch = "x86_64"))] {
                     let cx = &*(cx as *const libc::ucontext_t);
                     cx.uc_mcontext.gregs[libc::REG_RIP as usize] as *const u8
+                } else if #[cfg(all(target_os = "android", target_arch = "x86_64"))] {
+                    let cx = &*(cx as *const libc::ucontext_t);
+                    cx.uc_mcontext.gregs[libc::REG_RIP as usize] as *const u8
                 } else if #[cfg(all(target_os = "linux", target_arch = "x86"))] {
                     let cx = &*(cx as *const libc::ucontext_t);
                     cx.uc_mcontext.gregs[libc::REG_EIP as usize] as *const u8
@@ -219,6 +222,12 @@
                 } else if #[cfg(all(target_os = "android", target_arch = "aarch64"))] {
                     let cx = &*(cx as *const libc::ucontext_t);
                     cx.uc_mcontext.pc as *const u8
+                } else if #[cfg(all(target_os = "linux", target_arch = "arm"))] {
+                    let cx = &*(cx as *const libc::ucontext_t);
+                    cx.uc_mcontext.arm_pc as *const u8 // still not implemented in rust libc
+                } else if #[cfg(all(target_os = "android", target_arch = "arm"))] {
+                    let cx = &*(cx as *const libc::ucontext_t);
+                    cx.uc_mcontext.arm_pc as *const u8
                 } else if #[cfg(all(target_os = "macos", target_arch = "x86_64"))] {
                     let cx = &*(cx as *const libc::ucontext_t);
                     (*cx.uc_mcontext).__ss.__rip as *const u8