From: "Kalpana Ramamurthy" <kal_pana@hotmail.com>
To: kal_pana@hotmail.com, gdb@sourceware.org
Subject: gdb 6.4 not allowing me to change the value of registers like
$SP,$RBP and $RIP.
Date: Wed, 02 May 2007 14:10:04 +0000
I have a core dump whose registers look like this when I say "info reg"
when I give this command in gdb 6.4.
(gdb) info reg
rax 0x0 0
rbx 0x9c960a98 2627078808
rcx 0x2 2
rdx 0x0 0
rsi 0x4e1 1249
rdi 0xfee00300 4276093696
rbp 0x9c960a88 0x9c960a88
rsp 0x9c960a50 0x9c960a50
r8 0x1 1
r9 0x3 3
r10 0x0 0
r11 0x216 534
r12 0x9c960be8 2627079144
r13 0x3 3
r14 0x1 1
r15 0x0 0
rip 0x16489d 0x16489d <PANIC+51>
eflags 0x46 70
cs 0x8 8
ss 0x0 0
ds 0x0 0
es 0x0 0
fs 0x0 0
---Type <return> to continue, or q <return> to quit---
gs 0x0 0
I want to change the value of $rsp from 0x9c960a50 to 0x6d04ee0. But gdb
is not allowing me
to do that. When I say
(gdb) set $sp=0x6d04ee0
or if I say
(gdb) set $rsp=0x6d04ee0
gdb just refuses to change the values and $sp ($rsp) stays on as
0x9c960a50.
I am using gdb 6.4. When I do the same thing as above using gdb 6.0, it
works great. I am able
to change the values of the registers. Why does this happen only in gdb
6.4 ? I am not able to write macros because of this problem. Please help -
where am I going wrong ? I have been debugging gdb 6.4 source code for 3
whole days now and its driving me nuts. I could see the registers in the
regcache - and SP shows the new value. From the regcache onwards
I have no idea how gdb translates the contents of the register cache to
permanent values
where the globals like$rsp etc get set permanently unless we change it
back again.
Any help will be really appreciated.
Kalpana
====
_________________________________________________________________
Sign in and get updated on all the action from Formula One
http://content.msn.co.in/Sports/FormulaOne/Default