This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH] -data-list-changed-registers
Nick Roberts writes:
> > I think the changes are right in this case, though. Could you take a
> > look at those two functions (the change to make is obvious) and see if
> > that fixes your problem?
>
> If you mean the changes below, then these seem fine and give:
Actually this isn't quite right:
(gdb)
-break-insert main
^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x080484d9",func="main",file="myprog.c",line="55",times="0"}
(gdb)
-data-list-changed-registers
&"No registers.\n"
^error,msg="No registers."
(gdb)
-exec-run
^running
(gdb)
*stopped,changed-registers=[],reason="breakpoint-hit",bkptno="1",thread-id="0",frame={addr="0x080484d9",func="main",args=[{name="argc",value="1"},{name="argv",value="0xbffff794"}],file="myprog.c",fullname="/home/nick/myprog.c",line="55"}
(gdb)
-data-list-changed-registers
^done,changed-registers=["1","3","4","5","6","7","8","9","10","11","12","13","24","26","40","41"]
(gdb)
I think the changed-registers=[] after *stopped occurs because an exception is
raised in register_changed_p in the _first_ call to
mi_cmd_data_list_changed_registers and control doesn't return to to call
do_cleanups (cleanup).
Nick