在G ++或LLDB中嵌入C ++程序并从代码中启动Debugger

时间:2017-10-26 21:16:00

标签: c++ debugging gdb lldb

有没有办法静态编译嵌入gbd或lldb的C ++二进制文件,以便可以从代码中启动调试器?

基本上,我希望能够从代码中生成调试器,而无需从调试器运行代码。

最好的比喻是在python代码中粘贴import ipdb; ipdb.set_trace以在该行代码处启动调试器。

1 个答案:

答案 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);
}