EpicGamesExt/raddebugger

Any plans to add the ability to call functions similar to GDB, LLDB and VS debuggers?

Opened this issue · 1 comments

Problem Statement

Mixed-mode debugging (for managed languages like those using CIL e.g. C#) often requires the ability to temporarily switch context to call into C functions in order to resolve the name of a given function pointer. But haven't found the ability to do this, yet? Is this planned? or am I missing something? maybe there is a philosophical reason not to add it that I don't know of? Or maybe it's just not on the roadmap yet?

Additional Info

E.g. Mono exposes mono_pmip (source found here) to enable:
https://www.mono-project.com/docs/debug+profile/debug/

CoreCLR has IP2MD and more to enable CoreCLR (.NET) debugging:
https://github.com/steveharter/dotnet_coreclr/blob/master/Documentation/building/debugging-instructions.md

To the curious here's an example of someone explaining how GDB does it:
https://jvns.ca/blog/2018/01/04/how-does-gdb-call-functions/

Where it seems to be today

So far I've only managed to use Go To Name to find the function (required original source, didn't seem able to just return address) then at the source file location do Set Next Statement. But, again, this doesn't allow me to get the function pointer of the function until I've already hit the statement, where setting any parameters is not possible.

Yeah, we'll add that eventually - it's not hard, it's just there are about 8 million dangerous corner cases (that the other debuggers just YOLO and do it). The big use is being able to call code that presents a better view of some data, but I think we have better ideas on how to handle that. The remaining uses are minor, but we'll probably have a way to do it someday.