I am debugging in a Android problem. From log file there is a crash in services. But it is in service.odex. I tried to dump memory around crash pc and got values as following:
[96941.575555@3] vma for d0936954:[96941.578614@3] d0578000-d0e05000 r-xp 00c90000 b3:0c 1155 /system/framework/oat/arm/services.odex[96941.587327@3] vma for d093693d:[96941.590430@3] d0578000-d0e05000 r-xp 00c90000 b3:0c 1155 /system/framework/oat/arm/services.odex
[96941.646235@3] PC: 0xd09368d4:[96941.650823@3] 68d4 0118f8d0 e020f8d0 f10b47f0 f10a3bff f10b3aff 46500201 c000f8b9 0f00f1bc[96941.659081@3] 68f4 e08bd0cd f2404631 68087c11 0084f8d0 f8d06980 47f0e020 1010f8d8 468a4607[96941.667364@3] 6914 f8d06808 f8d000dc 47f0e020 42822200 4682da48 1010f8d8 46939104 f8d06808[96941.675643@3] 6934 f8d00104 47f0e020 69a99005 5100f501 1760f8d1 d0692900 6802b138 d004428a[96941.683924@3] 6954 2a006a12 6802d1fa 6881e069 f2409106 68087c11 0084f8d0 f8d06980 47f0e020[96941.692201@3] 6974 d0084287 0201f10b f8b94650 f1bcc000 d0cc0f00 f8d8e058 465a1010 6808460d[96941.700498@3] 6994 0118f8d0 e020f8d0 463947f0 23009a05 1cdef241 f8d06808 f8d00084 f8d0009c[96941.708762@3] 69b4 47f0e020 1008f8d8 6808460d 00dcf8d0 e020f8d0 280047f0 f8d8d10e 460d1010
Because serivce.odex is dynamic gererated file and there is no so/bin file consistent with this odex file. So although I know memory value around PC, but it is hard for me to convert these value to assemble code to debug why it crashed.
I want to know is there any tools which can change memory like above to assemble instructions?
How to use this tool ? which args can change binary files to assmble code? How does objdump recognize instruction set of these memory, thumb, thumb2 or arm or aarch64?