brintos

brintos / llvm-project-archived public Read only

0
0
Text · 832 B · 35fb4e0 Raw
32 lines · cpp
1#include <thread>2 3#include "lldb/API/LLDB.h"4#include "lldb/API/SBDebugger.h"5#include "lldb/API/SBTarget.h"6 7using namespace lldb;8int main (int argc, char **argv)9{10  // We are expecting the program path and a path to an executable to load11  if (argc != 2)12    return 1;13  const char *program_file = argv[1];14  SBDebugger::Initialize();15  SBDebugger debugger = SBDebugger::Create(false);16  auto lambda = [&](){17    SBError error;18    SBTarget target = debugger.CreateTarget(program_file, nullptr, nullptr, 19                                            false, error);20  };21 22  // Create 3 targets at the same time and make sure we don't crash.23  std::thread thread1(lambda);24  std::thread thread2(lambda);25  std::thread thread3(lambda);26  thread1.join();27  thread2.join();28  thread3.join();29  SBDebugger::Terminate();30  return 0;31}32