android - core dump addresses not byte aligned -


i examining arm crashes on android , realised memory addresses positions not 2-byte aligned (thumb/arm) are. 1 know why so? here example tombstone:

stack frame #00 pc 00072c9a /system/lib/libdvm.so (dvmabort+170) stack frame #01 pc 00050f6b /system/lib/libdvm.so (scopedcheck::checkinstancefieldid(_jobject*, _jfieldid*)+379) stack frame #02 pc 0005db56 /system/lib/libdvm.so (check_setbooleanfield(_jnienv*, _jobject*, _jfieldid*, unsigned char)+150) stack frame #03 pc 00003a93 /system/lib/libmytestt.so (java_com_test_jni_mylibwrapper_getmonitorsample+259) stack frame #04 pc 0002d850 /system/lib/libdvm.so (dvmplatforminvoke+80) stack frame #05 pc 00085b48 /system/lib/libdvm.so (dvmcalljnimethod(unsigned int const*, jvalue*, method const*, thread*)+648) stack frame #06 pc 000505db /system/lib/libdvm.so (dvmcheckcalljnimethod(unsigned int const*, jvalue*, method const*, thread*)+59) stack frame #07 pc 0008b96d /system/lib/libdvm.so (dvmresolvenativemethod(unsigned int const*, jvalue*, method const*, thread*)+317) stack frame #08 pc 00170ff1 /system/lib/libdvm.so 

one can see #00, #02 2 byte aligned while #01 , #03 not. explanation of why so? thanks.

i guess odd addresses indicate functions in thumb mode, while addresses in arm mode. when returning function bx lr, processor switch arm mode thumb or vice versa depending on lowest bit of address, i'd guess end seeing in backtrace well.


Comments

Popular posts from this blog

javascript - AngularJS custom datepicker directive -

javascript - jQuery date picker - Disable dates after the selection from the first date picker -