Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is the work I did in the summer of 2024 during my internship, adding a basic GDB stub to the simulator.
It includes the GDB stub itself (with comments elaborating on the functionality where useful) and a small amount of documentation on basic usage (assuming familiarity with GDB).
Blockers on merging:
std::optional
etc.)I haven't done the rebase onto latest dev yet because I distinctly remember the previous GDB stub implementation sitting unmerged for two years; I'm happy to do the work in my own time, since it's my fault it's got this far behind upstream, but I'd rather not unless it's actually going to get merged.
Why is this only being PRed now, when my internship finished months ago? Well, carrying on beyond the end of my actual internship turned out to be a terrible idea, because TB1 of fourth year started and suddenly I became busy. The Christmas break gave me an opportunity to do the tiny amount of remaining work.
I've certainly learned my lesson.
Possible future work:
*for example, there's an idiom which repeats across the stub code using
std::atoi
and similar, wrapped in a try-catch block, to convert strings to integers; this is horrible and clutters the code a lot.Adding support for SME2 should be fairly trivial, so I'm open to doing that in my own time (or advising someone else on how to do it) before merging.
Please feel free to ask me about anything else I've forgotten to include here - I'll remain reachable via email and I'll see comments on this pull request.