#include #include #include #include #include volatile bool wait_for_attach = true; void handle_attach(char *sync_file_path) { lldb_enable_attach(); { // Create a file to signal that this process has started up. std::ofstream sync_file; sync_file.open(sync_file_path); } while (wait_for_attach) std::this_thread::sleep_for(std::chrono::milliseconds(10)); } int main(int argc, char **args) { if (argc == 2) handle_attach(args[1]); // We let the binary live a little bit to see if it executed after detaching // from // breakpoint // Create a file to signal that this process has started up. std::ofstream out_file; // breakpoint out_file.open(std::string(args[0]) + ".side_effect"); return 0; }