Doubt using "set" command with registers

joaoandreferro@sapo.pt joaoandreferro@sapo.pt
Fri Oct 31 13:42:00 GMT 2014






Citando Pedro Alves <palves@redhat.com>:

> On 10/31/2014 11:21 AM, joaoandreferro@sapo.pt wrote:
>> Citando Pedro Alves <palves@redhat.com>:
>
>>> I'd guess that it's kgdb itself that is blocking those writes.
>>>
>>> Try "set debug remote 1" before the "set $foo = " command.
>
>> Thanks for your answer. I turned "set debug remote 1" on again, and
>> strangely, the output tells me that "set-register" is not supported,
>> but only when I'm able to change the register value (see the output
>> below). First, I've tried with a register which I can successfully
>> change the value, and then with another one where I wasn't able to do
>> it in the past. Do you know why this behaviour occurs? Meanwhile, I'll
>> ask the same in the KGDB mailing list. Like I've mentioned, output
>> below:
>>
>> (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
>
> If the P packet (write one register) is not supported, then ...
>
>> Sending packet:
>> $G14000000ccb59cc00000000067000000089fcbf10c9fcbf1ac309dc00000000079154ac09600000060000000680000007b009dc07c000000ffff0000ffff0000#61...Ack
>> Packet received: OK
>
> ... GDB tries the G packet (writes the whole set of registers in one block),
> and doesn't try P again.  That's normal.
>
>> Sending packet: $g#67...Ack
>> Packet received:
>> 14000000ccb59cc00000000067000000089fcbf10c9fcbf1ac309dc00000000079154ac09600000060000000680000007b009dc07c000000ffff0000ffff0000
>> (gdb) info reg $es
>> es             0x7c	124
>> (gdb) info reg $ss
>> ss             0x68	104
>> (gdb) set $ss = 0x69
>> Sending packet:
>> $G14000000ccb59cc00000000067000000089fcbf10c9fcbf1ac309dc00000000079154ac09600000060000000690000007b009dc07c000000ffff0000ffff0000#62...Ack
>> Packet received: OK
>
> Here GDB went straight to the G packet, because it now knows P is
> not supported.  The target accepted the write ...
>
>> Sending packet: $g#67...Ack
>> Packet received:
>> 14000000ccb59cc00000000067000000089fcbf10c9fcbf1ac309dc00000000079154ac09600000060000000680000007b009dc07c000000ffff0000ffff0000
>> (gdb) info reg $ss
>> ss             0x68	104
>
> ... but didn't make it really effective.
> Note the "68" in the g packet (read registers) reply -- seems like kgdb is
> simply ignoring the change to $ss.
>
> Thanks,
> Pedro Alves

Ok Pedro, thanks for the explanations. As I've said before, I'll try  
to obtain support on the KGDB mailing list.

Best regards,
João



More information about the Gdb mailing list