我在Perl中使用SWIG包装了我的C / C ++代码。由于包装代码,我几乎没有分段错误。我试图将ddd
与Perl脚本一起使用但不幸的是,即使我在脚本的一行(调用C / C ++代码的那一行)上设置断点,ddd
也无法进入到C / C ++代码。
当我调试Perl代码时,有没有办法将断点设置到我的C lib中?或者你知道在我运行这个Perl脚本时调试C lib的好方法/工具吗?
我正在使用Linux / gcc。
答案 0 :(得分:6)
我做了一件简单的事。我直接在gdb
解释器上调用perl
。
gdb /usr/bin/perl
(gdb) r myscript
#block the script someway or rerun it
(gdb) b whatever_my_function
似乎一旦scipt正在运行,共享内存也会加载到内存中。一旦发生这种情况,我就可以使用所有信息,函数和断点进行调试。
答案 1 :(得分:0)
我只使用SWIG从TCL调用C ++,并使用Visual Studio调试它,但同样的想法也适用于您的情况。我将描述我为调试所做的工作,希望你能弄清楚如何将它应用到你的情况中。
load
命令中的路径指向模块的调试版本)tclsh85.exe MyScript.tcl
HTH