有没有办法静态编译嵌入gbd或lldb的C ++二进制文件,以便可以从代码中启动调试器?
基本上,我希望能够从代码中生成调试器,而无需从调试器运行代码。
最好的比喻是在python代码中粘贴import ipdb; ipdb.set_trace
以在该行代码处启动调试器。
答案 0 :(得分:2)
你不需要在GDB或LLDB中编译就可以了:你可以自己调用外部二进制文件:
if (some_condition_that_requires_debugging) {
char cmd[100];
sprintf(cmd, "/usr/bin/gdb -p %d", getpid());
// invoke debugger on itself
system(cmd);
}