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