| /// LLDB C API Test Driver | |
| #include <algorithm> | |
| #include <iostream> | |
| #include <iterator> | |
| #include <string> | |
| #include <vector> | |
| #if !defined(_MSC_VER) | |
| #include <signal.h> | |
| #endif | |
| %include_SB_APIs% | |
| #include "common.h" | |
| using namespace std; | |
| using namespace lldb; | |
| void test(SBDebugger &dbg, std::vector<string> args); | |
| int main(int argc, char** argv) { | |
| // Ignore SIGPIPE. The lldb driver does this as well, | |
| // because we seem to get spurious SIGPIPES on some | |
| // Unixen that take the driver down. | |
| #if !defined(_MSC_VER) | |
| signal(SIGPIPE, SIG_IGN); | |
| #endif | |
| int code = 0; | |
| SBDebugger::Initialize(); | |
| SBDebugger dbg = SBDebugger::Create(); | |
| dbg.HandleCommand("settings set symbols.enable-external-lookup false"); | |
| dbg.HandleCommand( | |
| "settings set plugin.process.gdb-remote.packet-timeout 60"); | |
| try { | |
| if (!dbg.IsValid()) | |
| throw Exception("invalid debugger"); | |
| vector<string> args(argv + 1, argv + argc); | |
| test(dbg, args); | |
| } catch (Exception &e) { | |
| cout << "ERROR: " << e.what() << endl; | |
| code = 1; | |
| } | |
| SBDebugger::Destroy(dbg); | |
| return code; | |
| } |