Modifying a verboten register

Shaun Jackman
2006-05-04T14:45:50Z

Targetted for arm-elf, gdb does not let me modify the cpsr register
outside of a "normal" frame.

(gdb) p/x $cpsr=0x3f
Value being assigned to is no longer active.

I first reported this bug one year ago on 2005-04-20. So first thing
first, a wee anniversary party for the bug. *weeeeeeeeezzzzzzzzzzzzz*
(That was a noise maker.)

Parties aside, the JTAG interface I use (BDI2000) has a command mode
(Telnet interface) that I can use to modify the register. GDB seems to
cache its view of the registers though.

(gdb) p/x $cpsr
$1 = 0xd7

[in a galaxy far, far away]
BDI>rm cpsr 0x3f
BDI>rd cpsr
cpsr: 0x0000003f 63

(gdb) p/x $cpsr
$2 = 0xd7

I don't really expect two separate tools to cooperate to debug the
same core, but I'm scrambling for some (any) workaround to the above
bug. I quite literally see it *every* day. It makes my head hurt.

Cheers,
Shaun