This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
RE: Doubt using "set" command with registers
- From: Pete Delaney <pdelaney at silver-peak dot com>
- To: "joaoandreferro at sapo dot pt" <joaoandreferro at sapo dot pt>, "gdb at sourceware dot org" <gdb at sourceware dot org>
- Cc: Pete Delaney <pdelaney at silver-peak dot com>, "piet dot delaney at gmail dot com" <piet dot delaney at gmail dot com>
- Date: Wed, 29 Oct 2014 00:52:17 +0000
- Subject: RE: Doubt using "set" command with registers
- Authentication-results: sourceware.org; auth=none
- References: <20141028160156 dot Horde dot uvcacyDQQ900l0BFN1Pemw5 at mail dot sapo dot pt>
Had any luck using KGDB during the early boot code?
I haven't been able to get the ekgdboe working with the keyboard via a serial interface, thought it does start early enough.
Can't get ekgdboe working with tty0/ttyS0; starts way to late to debug a boot problem I'm looking at.
This use to be trivial with the old SunOS 4.1.4 kgdb patch, and I think the pre-KDB version of KGDB seemed
To do early boot code ok. With old 2 page SunOS 4.1.4 patch switching between task was just a matter of
Getting the SP and PC from the proc structure, changing $PS and $PC in gdb and restarting GDB so it would
Reload it's cache.
JTAG based debugging shouldn't be necessary to debug early boot code
And JTAG isn't readily available for large PCs.
-piet
--
Pete/Piet Delaney
O: +1 408 935-1813
C: +1 408 646-8557
H: +1 408 243-8872
Home Email: piet.delaney@gmail.com
-----Original Message-----
From: gdb-owner@sourceware.org [mailto:gdb-owner@sourceware.org] On Behalf Of joaoandreferro@sapo.pt
Sent: Tuesday, October 28, 2014 9:02 AM
To: gdb@sourceware.org
Subject: Doubt using "set" command with registers
Hello all,
I've been using GDB (in fact, conjuged with KGDB) lately to do some kernel debugging. I've been testing some GDB commands, and 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.
If someone knows something about this situation and can share it with me, it would be great.
Best regards,
JoÃo