1d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea 2d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea/// LLDB C API Test Driver 3d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea 4d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea#include <algorithm> 5d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea#include <iostream> 6d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea#include <iterator> 7d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea#include <string> 8d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea#include <vector> 9d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea 10d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea#include "lldb-headers.h" 11d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea 12d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea#include "common.h" 13d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea 14d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Maleausing namespace std; 15d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Maleausing namespace lldb; 16d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea 17d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Maleavoid test(SBDebugger &dbg, std::vector<string> args); 18d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea 19d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Maleaint main(int argc, char** argv) { 20d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea int code = 0; 21d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea 22d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea SBDebugger::Initialize(); 23d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea SBDebugger dbg = SBDebugger::Create(); 24d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea 25d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea try { 26d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea if (!dbg.IsValid()) 27d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea throw Exception("invalid debugger"); 28d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea vector<string> args(argv + 1, argv + argc); 29d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea 30d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea test(dbg, args); 31d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea } catch (Exception &e) { 32d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea cout << "ERROR: " << e.what() << endl; 33d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea code = 1; 34d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea } 35d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea 36d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea SBDebugger::Destroy(dbg); 37d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea return code; 38d2771ed2249c645019b7b1e46bdd677d2ed1cfe1Daniel Malea} 39