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