Thank you for your help. What is the reason for using SBLaunchInfo over calling tgt.Launch with the launch configuration as a set of parameters? Furthermore I do not see a way to set stdout, stdin, and stderr for the launched process by using SBLaunchInfo.
I have a question regarding the event loop. Is lldb thread-safe enough such that I can run that loop in another std::thread while simultaneously using other debugger functions? Kind regards, Jayvee Am Fr., 12. Juli 2019 um 19:56 Uhr schrieb Greg Clayton <clayb...@gmail.com >: > You need to call SBDebugger::Initialize() before calling > SBDebugger::Create(). > > Also, please use the SBLaunchInfo method for launching if possible where > you create a SBLaunchInfo, then call tgt.Launch() with the instance. > > Other than that, as Jim said, you need to setup an event loop if you don't > use synchronous mode where you wait for events and respond to events. > > Greg > > On Jun 26, 2019, at 4:58 AM, Jayvee Neumann via lldb-dev < > lldb-dev@lists.llvm.org> wrote: > > Dear LLDB developers, > > I am currently stuck while using the C++ API of LLDB. I am unable to > correctly launch a process. > The code I have written looks as follows: > > int main(int argc, char *argv[]){ > LLDBSentry senty; > SBDebugger dbg(SBDebugger::Create()); > ... > const char *exeFilePath = "./target"; > const char *arch = "x86_64"; > const char *platform = ""; > const char *dependentLibs = ""; > SBError error; > SBTarget tgt = dbg.CreateTarget(exeFilePath, arch, platform, > dependentLibs, error); > ... > SBListener listen; > SBProcess proc = tgt.Launch( > listen, > nullptr, > nullptr, > nullptr, > "targetout.txt", > nullptr, > "./", > eLaunchFlagExec | eLaunchFlagDebug, > false, > error > ); > ... > SBThread thread = proc.GetSelectedThread(); // (1) > ... > } > > The complete code (usr.cpp) is added as an attachment to this email. > Its output is also added as a text file (stdout.txt) to this email. > > The problem I have is, that thread.IsValid() returns null after line (1). > Furthermore, the process says, that its state is eStateStopped, when asked > via proc.IsStopped() it answers "false", however. > The debugging target is a simple file that writes a hexadecimal number > every 10us to stdout. I can see that the target is running, because > targetout.txt is growing in size and its content is valid output from > "target". > Can you tell me what my mistake is? > > Kind Regards > Jayvee > > <usr.cpp><stdout.txt>_______________________________________________ > lldb-dev mailing list > lldb-dev@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > > >
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev