-
-
Notifications
You must be signed in to change notification settings - Fork 48
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
finally clean up multiprocess extension support
Ughh, it took a long while, but I've finally come up with an API for multiprocess support that I'm happy with, _and_ fixed some icky hacks and bad implementation choices in the core gdbstub implementation. Some interesting things that come out of this (chonker of a) commit: - Turns out the `qC` packet is totally useless, so I've gone ahead and removed it entirely. The less code the better. - I've finally fixed the incredibly confusing naming scheme surrounding the thread-id structures. The new names should be much more sane (and have less overlap) - I've massively improved the `resume` method for multithreaded targets. The key insight is that returning a tuple of `(Tid, StopReason)` wasn't exactly correct, as there are certain stop reasons that are _not_ associated with any Tid (e.g: GDB interrupt), and it effectively forced the target to "flip a coin" as to which Tid it reported. This old system wreaked havoc when dealing with breakpoints in multithreaded systems, but with the new `ThreadStopReason` API, i've managed to clean up the library internals to keep the GDB nice and happy, and removed the burden of making arbitrary decisions from the Targer implementation. - vCont works now! I'm a dummy, and never actually realized that my vCont implementation was totally busted. I've gone ahead and fixed it, so it should be working now.
- Loading branch information
1 parent
9970cd5
commit 7c67634
Showing
21 changed files
with
453 additions
and
304 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,7 @@ | ||
/target | ||
**/*.rs.bk | ||
Cargo.lock | ||
|
||
**/.gdb_history | ||
# GDB will core dump if the target is implemented incorrectly (which it often is during debugging) | ||
**/core |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.