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.
This function is now only used by VS, right?
It can handle this expression?
There was a problem hiding this comment.
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.
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.
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).
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
instructionPointerReferencefrom a file and line.#1042 will focus on implement GoToRequest (Jump to Line)