40#if defined(_MSC_VER) && defined(_DEBUG)
41 _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
42 _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
43 _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
44 _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
45 _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
46 _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
47 _set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
52inline int runProbes(
int argc,
const char *argv[],
const char *name,
53 const char *description,
54 const std::vector<ProbeEntry> &probes) {
56 cli.description(description);
57 std::string probeName;
58 cli.add_option(
"--probe", probeName,
59 "Run only the named probe. Without this flag, every probe "
61 if (
int rc = cli.
esiParse(argc, argv))
63 if (!cli.get_help_ptr()->empty())
72 conn->getServiceThread()->addPoll(*accel);
75 if (probeName.empty()) {
76 for (
const auto &[pname, fn] : probes) {
83 for (
const auto &[pname, candidate] : probes) {
84 if (pname == probeName) {
90 std::cerr << name <<
": unknown probe '" << probeName <<
"'\n";
99 }
catch (std::exception &e) {
AcceleratorConnections, Accelerators, and Manifests must all share a context.
int runProbes(int argc, const char *argv[], const char *name, const char *description, const std::vector< ProbeEntry > &probes)
Run the probe-runner main loop. Returns 0 on success, nonzero on failure.