1*99451b44SJordan Rupprecht 2*99451b44SJordan Rupprecht/// LLDB C API Test Driver 3*99451b44SJordan Rupprecht 4*99451b44SJordan Rupprecht#include <algorithm> 5*99451b44SJordan Rupprecht#include <iostream> 6*99451b44SJordan Rupprecht#include <iterator> 7*99451b44SJordan Rupprecht#include <string> 8*99451b44SJordan Rupprecht#include <vector> 9*99451b44SJordan Rupprecht#if !defined(_MSC_VER) 10*99451b44SJordan Rupprecht #include <signal.h> 11*99451b44SJordan Rupprecht#endif 12*99451b44SJordan Rupprecht 13*99451b44SJordan Rupprecht%include_SB_APIs% 14*99451b44SJordan Rupprecht 15*99451b44SJordan Rupprecht#include "common.h" 16*99451b44SJordan Rupprecht 17*99451b44SJordan Rupprechtusing namespace std; 18*99451b44SJordan Rupprechtusing namespace lldb; 19*99451b44SJordan Rupprecht 20*99451b44SJordan Rupprechtvoid test(SBDebugger &dbg, std::vector<string> args); 21*99451b44SJordan Rupprecht 22*99451b44SJordan Rupprechtint main(int argc, char** argv) { 23*99451b44SJordan Rupprecht 24*99451b44SJordan Rupprecht// Ignore SIGPIPE. The lldb driver does this as well, 25*99451b44SJordan Rupprecht// because we seem to get spurious SIGPIPES on some 26*99451b44SJordan Rupprecht// Unixen that take the driver down. 27*99451b44SJordan Rupprecht#if !defined(_MSC_VER) 28*99451b44SJordan Rupprecht signal(SIGPIPE, SIG_IGN); 29*99451b44SJordan Rupprecht#endif 30*99451b44SJordan Rupprecht int code = 0; 31*99451b44SJordan Rupprecht 32*99451b44SJordan Rupprecht SBDebugger::Initialize(); 33*99451b44SJordan Rupprecht SBDebugger dbg = SBDebugger::Create(); 34*99451b44SJordan Rupprecht dbg.HandleCommand("settings set symbols.enable-external-lookup false"); 35*99451b44SJordan Rupprecht dbg.HandleCommand( 36*99451b44SJordan Rupprecht "settings set plugin.process.gdb-remote.packet-timeout 60"); 37*99451b44SJordan Rupprecht 38*99451b44SJordan Rupprecht try { 39*99451b44SJordan Rupprecht if (!dbg.IsValid()) 40*99451b44SJordan Rupprecht throw Exception("invalid debugger"); 41*99451b44SJordan Rupprecht vector<string> args(argv + 1, argv + argc); 42*99451b44SJordan Rupprecht 43*99451b44SJordan Rupprecht test(dbg, args); 44*99451b44SJordan Rupprecht } catch (Exception &e) { 45*99451b44SJordan Rupprecht cout << "ERROR: " << e.what() << endl; 46*99451b44SJordan Rupprecht code = 1; 47*99451b44SJordan Rupprecht } 48*99451b44SJordan Rupprecht 49*99451b44SJordan Rupprecht SBDebugger::Destroy(dbg); 50*99451b44SJordan Rupprecht return code; 51*99451b44SJordan Rupprecht} 52