mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-07 18:06:06 +00:00

We're seeing some very occasional failures in these tests where the mini-driver dies with a SIGPIPE. We don't use SIGPIPE for anything, and the main lldb driver program already ignores SIGPIPE, so ignoring it in the mini-driver is a good way to remove these spurious failures. <rdar://problem/29740488> llvm-svn: 290216
49 lines
921 B
Plaintext
49 lines
921 B
Plaintext
|
|
/// 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();
|
|
|
|
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;
|
|
}
|