AS中release与debug的 GetStaticMethodID 方法有何不同

AS中release与debug的 GetStaticMethodID 方法有何不同?
代码如下

patchEnv.method_onNativeCallback1 = env->GetStaticMethodID(nativeEngineClass.get(), "onNativeCallback1", "(II)I");
patchEnv.method_onNativeCallback2 = env->GetStaticMethodID(nativeEngineClass.get(),"onNativeCallback2","(I[Ljava/lang/Object;)I");
LOG("patchEnv.method_onNativeCallback1 = %p",patchEnv.method_onNativeCallback1);
LOG("patchEnv.method_onNativeCallback2 = %p",patchEnv.method_onNativeCallback2);

在配置debuggable false时 通过GetStaticMethodID 获取方法ID
10-30 18:08:22.267 32641 32641 I libfb : patchEnv.method_onNativeCallback1 = 0xe144e064
10-30 18:08:22.267 32641 32641 I libfb : patchEnv.method_onNativeCallback2 = 0xe144e07c
10-30 18:08:22.267 32641 32641 I libfb : new stampMethod = 0xe144e004

在配置debuggable true时 通过GetStaticMethodID 获取方法ID
10-30 18:01:41.012 32151 32151 I libfb : patchEnv.method_onNativeCallback1 = 0x3d
10-30 18:01:41.012 32151 32151 I libfb : patchEnv.method_onNativeCallback2 = 0x3f
10-30 18:01:41.012 32151 32151 I libfb : new stampMethod = 0x41
随后使用ID时报错:
10-30 14:22:43.178 30866 30866 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x41 in tid 30866 (ansoft.sdreader), pid 30866 (ansoft.sdreader)
10-30 14:22:43.418 30888 30888 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x41

附带补充一下,debug:GetStaticMethodID 获取方法ID 可以正常调用到JAVA层方法。我的代码中有一部分逻辑处理需要解引用GetStaticMethodID获取到的ID 在release模式下是可行的,但是在debug模式下受阻。想知道原因