[lldb-dev] Can I call a python script from LLDB c++ code?

Greg Clayton via lldb-dev lldb-dev at lists.llvm.org
Tue Apr 3 15:18:41 PDT 2018

> On Apr 3, 2018, at 12:18 PM, Ted Woodward via lldb-dev <lldb-dev at lists.llvm.org> wrote:
> LLDB for Hexagon can automatically launch and connect to the Hexagon
> simulator, much like LLDB can launch and connect to debugserver/lldb-server.
> I've got a copy of GDBRemoteCommunication::StartDebugserverProcess that does
> this. A copy because there are feature incompatibilities between hexagon-sim
> and debugserver/lldb-server.
> On a hardware target, our OS has a debug stub. We'd like to run the lldb
> test suite talking to this stub on the simulator, instead of talking to the
> RSP interface the simulator publishes. We have a module that will forward
> ports to the OS under simulation, but to do this I need to:
> 1) open an http connection to port x
> 2) parse some xml coming back that contains the actual port for the stub I
> want to connect to
> 3) connect to the new port

Can't you forward ports in advance and then run lldb-server in platform mode and tell it to use only those ports? Then lldb-server will do everything it needs. There is a port offset option to lldb-server that can be used in case the lldb-server that runs on the simulator returns say port 1111, but it needs to have 10000 added to it...

> I have a python script that will do this, but I need to do it inside LLDB
> c++ code in GDBRemoteCommunication.cpp, so when I do a "run" it will jump
> through the correct hoops and connect to the stub under simulation.
> Is there a good way to call a python script from LLDB c++ code and get a
> result back? Or is there a better solution?

The the main question is can you run lldb-server in the simulator and have the test suite just work? What is stopping you from being able to do that if the answer is no?

It sounds like a real hack if you have to run a python script in ProcessGDBRemote. It sounds like you need to just modify your hexagon simulator platform code to "do the right thing".

> Ted
> --
> Qualcomm Innovation Center, Inc.
> The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
> Linux Foundation Collaborative Project
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

More information about the lldb-dev mailing list