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

Payment information shows nothing in one page checkout page magento -

tcpdump - How to check if server received packet (acknowledged) -