4 #include <msp/fs/utils.h>
5 #include <msp/io/file.h>
6 #include <msp/strings/format.h>
7 #include <msp/strings/utils.h>
15 DebuggerType check_debugger(bool force_recheck)
17 static DebuggerType debugger = NONE;
18 static bool checked = false;
20 if(!checked || force_recheck)
25 unsigned tracer_pid = 0;
26 IO::BufferedFile status("/proc/self/status");
28 while(status.getline(line))
29 if(!line.compare(0, 10, "TracerPid:"))
31 tracer_pid = lexical_cast<unsigned>(strip(line.substr(10)));
37 FS::Path tracer_cmd = FS::readlink(format("/proc/%d/exe", tracer_pid));
38 if(FS::basename(tracer_cmd)=="gdb")