Thread with 8 posts
jump to expanded postthe next release of touchHLE will have a new feature that 99.9% of users will never have a use for, but which will hopefully save me a lot of time/effort/suffering/tears in future
I implemented the GDB Remote Serial Protocol :3
https://github.com/hikari-no-yume/touchHLE/commit/00aa841ec2c12c94c6194adf64432ec10a404f93
hereโs my review of the GDB Remote Serial Protocol, having implemented a small subset of it:
itโsโฆ fine. the docs lack a few details, but you can figure them out from reading the GDB source code and from seeing how GDB responds to your packets. Iโm glad itโs all ASCII.
Iโm also glad it gracefully degrades. it assumes only the absolute minimum feature set. every single modern fancy feature is optional, because itโll query or probe for support before trying to use those.
wellโฆ GDB will, at least. LLDB is another story ^^;;;;
I really appreciate that GDB hasnโt removed support for the deprecated way of doing multi-threading, because I think the modern way would be a pain to implement for me.
and now I found a (very annoying) GDB bug lol https://sourceware.org/bugzilla/show_bug.cgi?id=30234
I wrote a debugging guide ๐ค https://github.com/hikari-no-yume/touchHLE/blob/trunk/DEBUGGING.md
using a real debugger is amazing, I can effectively insert debug prints into a binary:
(gdb) b *0x29a88
Breakpoint 1 at 0x29a88
(gdb) commands
Type commands for breakpoint(s) 1, one per line.
End with a line saying just "end".
>p *(char**)$r0
>continue
>end
(gdb) c
@hikari ah congrats on the TAS API
@SoniEx2 lmao