Hello all,

Lately, I've been experimenting with KGDB to do some kernel debugging.  
While doing this, a doubt arised while using the "set" command, trying  
to change the value of some registers. I've been able to successfully  
change the value of all the registers provided by the "info registers"  
command (i. e., in my case $eax, $ecx, $edx, $ebx, $esp, $ebp, $esi,  
$edi, $eip, $eflags, $cs, $ss, $ds, $es, $fs and $gs) *except* for  
$esp, $ss, $fs and $gs. Why is it so? I've been making these tests  
after hitting a hardware breakpoint, then I set the values with e. g.  
"set $es = 0xf1c2007c", and verifiy the assignemt with "info reg $es".  
As I've pointed out, it works with the majority of the registers,  
except for that four (in this particular case, the first command  
doesn't output any error, but the second command shows me that the  
registers remain with the initial value). By the way, I've started GDB  
with the -write option (checked it inside GDb with the "show write"  
command). My GDB version is 7.2. I have a practical example below the  
end of this message, with "set debug remote 1" option enabled. Still  
regarding this exxample, from what I've been told in the GDB mailing  
list, it seems KGDB is ignoring the value change on $ss.

Anyone here knows why? If someone knows something about this situation  
and can share it with me, it would be great.

Best regards,
João

Example:

(gdb) info reg $es
es             0x7b        123
(gdb) set $es = 0x7c
Sending packet: $Pd=7c000000#ab...Ack
Packet received:
Packet P (set-register) is NOT supported
Sending packet:  
$G14000000ccb59cc00000000067000000089fcbf10c9fcbf1ac309dc00000000079154ac09600000060000000680000007b009dc07c000000ffff0000ffff0000#61...Ack
Packet received: OK
Sending packet: $g#67...Ack
Packet received:  
14000000ccb59cc00000000067000000089fcbf10c9fcbf1ac309dc00000000079154ac09600000060000000680000007b009dc07c000000ffff0000ffff0000
(gdb) info reg $es
es             0x7c        124
(gdb) info reg $ssPedro
ss             0x68        104
(gdb) set $ss = 0x69
Sending packet:  
$G14000000ccb59cc00000000067000000089fcbf10c9fcbf1ac309dc00000000079154ac09600000060000000690000007b009dc07c000000ffff0000ffff0000#62...Ack
Packet received: OK
Sending packet: $g#67...Ack
Packet received:  
14000000ccb59cc00000000067000000089fcbf10c9fcbf1ac309dc00000000079154ac09600000060000000680000007b009dc07c000000ffff0000ffff0000
(gdb) info reg $ss
ss             0x68        104

Best regards,
João

------------------------------------------------------------------------------
_______________________________________________
Kgdb-bugreport mailing list
Kgdb-bugreport@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kgdb-bugreport

Reply via email to