Summary: Recently I've noticed that VSCode sometimes doesn't send the terminateDebuggee flag within the disconnectRequest, even though lldb-vscode sets the terminateDebuggee capability correctly. This has been causing that inferiors don't die after the debug session ends, and many users have reported issues because of this. An easy way to mitigate this is to set better default values for the terminateDebuggee field in the disconnect request. I'm assuming that for a launch request, the default will be true, and for attach it'll be false. Reviewers: clayborg, labath, aadsm Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D81200
34 lines
788 B
C++
34 lines
788 B
C++
#include <chrono>
|
|
#include <cstdio>
|
|
#include <fstream>
|
|
#include <string>
|
|
#include <thread>
|
|
|
|
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;
|
|
}
|