On 02/09/2011 09:51 PM, Ulrich Weigand wrote: > Yes, I'm aware of that. However, my understanding is that this special > definition of STR PC applies to *all* variants of STR, including PUSH > (PUSH { PC } is just another mnemonic for STR PC, [ SP, #-4 ]). > Oh, I understand your points now. You are right. I didn't realize that before. > If you look at the formal semantics definition in the ARM reference > manual, all variants of STR (including PUSH) use the pseudo-code macro > "PCStoreValue" to implement storing of the PC, which is defined to > include the implementation-defined constant ... A new patch is attached in which PUSH/POP is used. I also noticed that Insn4 should be 'add r4, r4, #16' rather than 'add r4, r4, #8', explained in the comments. After that, the offset of my board is 8. Run patched arm-disp-step.exp on native GDB configured as armv7l-unknown-linux-gnueabi. No failures. -- Yao (齐尧)