void test(SBDebugger &dbg, vector<string> args) { SBTarget target = dbg.CreateTarget(args.at(0).c_str()); if (!target.IsValid()) throw Exception("invalid target"); SBBreakpoint breakpoint = target.BreakpointCreateByName("next"); if (!breakpoint.IsValid()) throw Exception("invalid breakpoint"); breakpoint.SetCallback(BPCallback, 0); std::unique_ptr<char> working_dir(get_working_dir()); SBProcess process = target.LaunchSimple (0, 0, working_dir.get()); { unique_lock<mutex> lock(g_mutex); g_condition.wait_for(lock, chrono::seconds(5)); if (g_breakpoint_hit_count != 1) throw Exception("Breakpoint hit count expected to be 1"); } }