Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libdb: implement qfThreadInfo & qsThreadInfo #154

Merged
merged 1 commit into from
May 29, 2023
Merged

libdb: implement qfThreadInfo & qsThreadInfo #154

merged 1 commit into from
May 29, 2023

Conversation

WinterMute
Copy link
Member

Fixes connection problem with gdb > 7.1

@DacoTaco DacoTaco merged commit 5ff9b2f into master May 29, 2023
@WinterMute
Copy link
Member Author

Previous behaviour.

davem@straylight gdbstub % /opt/devkitpro/devkitPPC/bin/powerpc-eabi-gdb gdbstub.elf 
GNU gdb (GDB) 13.2
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "--host=aarch64-apple-darwin20.2 --target=powerpc-eabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from gdbstub.elf...
(gdb) set debug remote 1
(gdb) target remote 192.168.4.101:6000
Remote debugging using 192.168.4.101:6000
[remote] start_remote_1: enter
  [remote] Sending packet: $qSupported:multiprocess+;swbreak+;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;no-resumed+;memory-tagging+#ec
  [remote] Received Ack
  [remote] Packet received: 
  [remote] packet_ok: Packet qSupported (supported-packets) is NOT supported
  [remote] Sending packet: $vMustReplyEmpty#3a
  [remote] Received Ack
  [remote] Packet received: 
  [remote] Sending packet: $Hg0#df
  [remote] Received Ack
  [remote] Packet received: E01
  [remote] Sending packet: $qTStatus#49
  [remote] Received Ack
  [remote] Packet received: 
  [remote] packet_ok: Packet qTStatus (trace-status) is NOT supported
  [remote] Sending packet: $?#3f
  [remote] Received Ack
  [remote] Packet received: T0501:80065178;40:80005940;thread:2;
  [remote] Sending packet: $qfThreadInfo#bb
  [remote] Received Ack
  [remote] Packet received: 
  [remote] Sending packet: $qL1200000000000000000#50
  [remote] Received Ack
  [remote] Packet received: qM021000000000000000000000000000000010000000000000002
inferior.c:353: internal-error: find_inferior_pid: Assertion `pid != 0' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
----- Backtrace -----
---------------------
inferior.c:353: internal-error: find_inferior_pid: Assertion `pid != 0' failed.
A problem internal to GDB has been detected,```

@WinterMute
Copy link
Member Author

And with these packets implemented

GNU gdb (GDB) 13.2
Copyright (C) 2023 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "--host=aarch64-apple-darwin20.2 --target=powerpc-eabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from gdbstub.elf...
(gdb) set debug remote 1
(gdb) target remote 192.168.4.101:6000
Remote debugging using 192.168.4.101:6000
[remote] start_remote_1: enter
  [remote] Sending packet: $qSupported:multiprocess+;swbreak+;hwbreak+;qRelocInsn+;fork-events+;vfork-events+;exec-events+;vContSupported+;QThreadEvents+;no-resumed+;memory-tagging+#ec
  [remote] Received Ack
  [remote] Packet received: 
  [remote] packet_ok: Packet qSupported (supported-packets) is NOT supported
  [remote] Sending packet: $vMustReplyEmpty#3a
  [remote] Received Ack
  [remote] Packet received: 
  [remote] Sending packet: $Hg0#df
  [remote] Received Ack
  [remote] Packet received: E01
  [remote] Sending packet: $qTStatus#49
  [remote] Received Ack
  [remote] Packet received: 
  [remote] packet_ok: Packet qTStatus (trace-status) is NOT supported
  [remote] Sending packet: $?#3f
  [remote] Received Ack
  [remote] Packet received: T0501:800652b8;40:80005a58;thread:2;
  [remote] Sending packet: $qfThreadInfo#bb
  [remote] Received Ack
  [remote] Packet received: m1,2
  [remote] Sending packet: $qsThreadInfo#c8
  [remote] Received Ack
  [remote] Packet received: l
  [remote] Sending packet: $qAttached#8f
  [remote] Received Ack
  [remote] Packet received: 
  [remote] packet_ok: Packet qAttached (query-attached) is NOT supported
  [remote] Sending packet: $Hc-1#09
  [remote] Received Ack
  [remote] Packet received: OK
  [remote] Sending packet: $qOffsets#4b
  [remote] Received Ack
  [remote] Packet received: 
  [remote] wait: enter
  [remote] wait: exit
  [remote] Sending packet: $qfThreadInfo#bb
  [remote] Received Ack
  [remote] Packet received: m1,2
  [remote] Sending packet: $qsThreadInfo#c8
  [remote] Received Ack
  [remote] Packet received: l
0x80005a58 in _break () at /Users/davem/projects/devkitpro/libogc/libdb/debug.c:636
636	}
  [remote] Sending packet: $qSymbol::#5b
  [remote] Received Ack
  [remote] Packet received: 
  [remote] packet_ok: Packet qSymbol (symbol-lookup) is NOT supported
[remote] start_remote_1: exit
(gdb) b gdbstub.c:52
[remote] Sending packet: $m80004a34,4#91
[remote] Received Ack
[remote] Packet received: 3fc08003
[remote] Sending packet: $m80004b34,4#92
[remote] Received Ack
[remote] Packet received: 7fa3eb78
Breakpoint 1 at 0x80004b34: file /Users/davem/projects/devkitpro/gamecube-examples/devices/usbgecko/gdbstub/source/gdbstub.c, line 52.
(gdb) cont
Continuing.
[remote] Sending packet: $Z0,80004b34,4#db
[remote] Received Ack
[remote] Packet received: OK
[remote] packet_ok: Packet Z0 (software-breakpoint) is supported
[remote] Sending packet: $vCont?#49
[remote] Received Ack
[remote] Packet received: 
[remote] packet_ok: Packet vCont (verbose-resume) is NOT supported
[remote] Sending packet: $Hc0#db
[remote] Received Ack
[remote] Packet received: OK
[remote] Sending packet: $c#63
[remote] Received Ack
[remote] wait: enter
[remote] wait: exit
[remote] wait: enter
  [remote] Packet received: T0501:800652b8;40:80004b34;thread:2;
[remote] wait: exit
[remote] Sending packet: $qfThreadInfo#bb
[remote] Received Ack
[remote] Packet received: m1,2
[remote] Sending packet: $qsThreadInfo#c8
[remote] Received Ack
[remote] Packet received: l
[remote] Sending packet: $z0,80004b34,4#fb
[remote] Received Ack
[remote] Packet received: OK

Thread 2 hit Breakpoint 1, main () at /Users/davem/projects/devkitpro/gamecube-examples/devices/usbgecko/gdbstub/source/gdbstub.c:52
52				printf("Button A pressed.\n");
(gdb) cont
Continuing.
[remote] Sending packet: $m80004b34,4#92
[remote] Received Ack
[remote] Packet received: 7fa3eb78
[remote] Sending packet: $Hc2#dd
[remote] Received Ack
[remote] Packet received: OK
[remote] Sending packet: $s#73
[remote] Received Ack
[remote] wait: enter
  [remote] Packet received: T0501:800652b8;40:80004b38;thread:2;
[remote] wait: exit
[remote] Sending packet: $Z0,80004b34,4#db
[remote] Received Ack
[remote] Packet received: OK
[remote] Sending packet: $Hc0#db
[remote] Received Ack
[remote] Packet received: OK
[remote] Sending packet: $c#63
[remote] Received Ack
[remote] wait: enter
  [remote] Packet received: T0501:800652b8;40:80004b34;thread:2;
[remote] wait: exit
[remote] Sending packet: $qfThreadInfo#bb
[remote] Received Ack
[remote] Packet received: m1,2
[remote] Sending packet: $qsThreadInfo#c8
[remote] Received Ack
[remote] Packet received: l
[remote] Sending packet: $z0,80004b34,4#fb
[remote] Received Ack
[remote] Packet received: OK

Thread 2 hit Breakpoint 1, main () at /Users/davem/projects/devkitpro/gamecube-examples/devices/usbgecko/gdbstub/source/gdbstub.c:52
52				printf("Button A pressed.\n");```

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants