Nothing crazy here, just an organizational cleanup.
Details
Diff Detail
Event Timeline
lldb/include/lldb/Host/Host.h | ||
---|---|---|
231 | Stale comment, I'll update |
lldb/include/lldb/Host/Host.h | ||
---|---|---|
231 | Is this supposed to be a generic function call that, e.g, should fire for debugging a process in QEMU under Linux, or is it meant to specifically check for Rosetta on macOS? The comment makes it sound like it's the latter and the API name hints at the former. It would be nice to clarify this in the comment. |
lldb/include/lldb/Host/Host.h | ||
---|---|---|
231 | It is meant specifically for Rosetta, but this leaves in Host, so I decided for a generic name. |
lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | ||
---|---|---|
3424 | I don't think this is a particularly good abstraction, as the debugserver path is still left here, and the path is definitely os- and arch-specific. It would be better if the API returned the path to the debugserver-to-be-used instead. Bonus points if you can also hide the DEBUGSERVER_BASENAME logic from GDBRemoteCommunication.cpp into the same API. |
lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | ||
---|---|---|
3424 | hmm, I wonder if this code should live in GDBRemoteCommunication.cpp |
lldb/include/lldb/Host/Host.h | ||
---|---|---|
231 | Not awesome, but IsMacOSRosettaProcess or IsMacOSRosettaTranslated? A more serious question: Is Host actually the right place for this function? What happens when I remote-debug a Rosetta process from another Mac or a Linux machine? Is there even a correct abstraction for this use-case? Platform maybe? |
lldb/include/lldb/Host/Host.h | ||
---|---|---|
231 | This code is only used when debugging on the host. When debugging remotely, you either connect to at already running instance of debugserver, or you ask the lldb-server-platform process to launch one for you. The platform process then should use this function to find the right debugserver to launch, but using a Host function is appropriate there, because the platform process is running remotely, and so it will the the "remote Host" which is answering the question. | |
lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | ||
3424 | I think it ended up there because the gdb-server launching code is used from both liblldb and lldb-server (the platform version), and GDBRemoteCommunication is the greatest common denominator. It's not ideal, but I don't think its the worst thing that we have. (At one point I'd like to create a library to house code which is shared between liblldb and lldb-server, and then it may be easier to organize things better.) Speaking of that... I think this code should live in GDBRemoteCommunication as well. In the situation where one is remote-debugging a mac via lldb-server-platform, I assume one would want the platform process to automatically spawn the right debugserver for the rosetta thingies. |
lldb/include/lldb/Host/Host.h | ||
---|---|---|
231 |
Thanks, that makes perfect sense! |
Stale comment, I'll update