-
Notifications
You must be signed in to change notification settings - Fork 219
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
Support GoToTargets Request #1102
Conversation
Revert "use List for HandleCollection"
{ | ||
return Constants.S_FALSE; | ||
} | ||
string result = frame.EvaluateExpression("$pc=" + EngineUtils.AsAddr(addr, _engine.DebuggedProcess.Is64BitArch)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function is now only used by VS, right?
It can handle this expression?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function is now only used by VS, right?
Correct. Currently this code isn't reachable in DAP scenarios.
It can handle this expression?
This is just an internal call within MIEngine, so it will not matter what IDE is used. It worked with whatever scenario Set Next Statement was originally tested (Android?). I don't know if it has been tested more broadly. Certainly using the actual GDB command is better. But this PR just seeks to finish off disassembly support. Actually implementing set next statement is still left for your PR. Someone needs to finish off handling the work of handling that stopping event...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah yeah my bad, of course this goes down to gdb and not up.
Setting $pc
is actually different from the jump command in that it does not start your program running; it only changes the address of where it will run when you continue
: https://sourceware.org/gdb/current/onlinedocs/gdb/Jumping.html
So I'm not sure how this worked out regarding UI/UX.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yup, we would need to hide this difference -- the new set next statement would need to save some state in the process object to indicate that it is waiting for that stop event, and then SetNextStatement will need to wait for the stop event to be raised (or for the target process to exit).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Otherwise LGTM
This will be handled in another PR. |
Thank you @Trass3r for the initial work.
This PR will add in the GoToTargets request which can be used by the client to get
instructionPointerReference
from a file and line.#1042 will focus on implement GoToRequest (Jump to Line)