disInstr(thumb): unhandled instruction: 0x450B 0xD104 0x450B 0xD104 =>
strmi Does valgrind not support strmi instr?
==23313== valgrind: Unrecognised instruction at address 0x4108187.
The complaint says "(thumb)", and the address 0x4108187 is odd, so this looks
like
Thumb mode, which is 16-bit instructions. There is no "strmi" opcode in the
Thumb
instruction set. "strmi" would be a 32-bit instruction which is a conditional
"STore Register to memory if condition code is MInus (N bit (negative) set)".
Assembling and dis-assembling the program
===== foo.S
.short 0x450B, 0xD104
=====
$ gcc -c foo.S
$ gdb foo.o
(gdb) x/2i 1 ### 1: odd pc ==> thumb mode (16-bit instructions)
0x1: cmp r3, r1
0x3: bne.n 0xe
(gdb) x/i 0 ### 0: even pc ==> ARM mode (32-bit instructions)
0x0: tstle r4, r11, lsl #10
(gdb)
shows that "0x450B 0xD104" is not a 'strmi'.
Please use a debugger or other tool to inspect the instruction stream.
Show the surrounding bytes (16 bytes before, 16 bytes after)
in both hex and decoded instructions.
--
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users