我已經用Perl中的SWIG封裝了我的C/C++代碼。由於包裝的代碼,我有幾個分段錯誤。我試圖在Perl腳本中使用ddd
,但不幸的是,即使我在腳本的一行(調用C/C++代碼的行)上設置了一個斷點,ddd
也無法步入C/C++代碼。在perl中調試由swig封裝的共享庫
當我正在調試Perl代碼時,有什麼方法可以將斷點設置到我的C庫中,或者當我運行此Perl腳本時,是否知道調試C庫的好方法/工具?
我正在使用Linux/gcc。
我已經用Perl中的SWIG封裝了我的C/C++代碼。由於包裝的代碼,我有幾個分段錯誤。我試圖在Perl腳本中使用ddd
,但不幸的是,即使我在腳本的一行(調用C/C++代碼的行)上設置了一個斷點,ddd
也無法步入C/C++代碼。在perl中調試由swig封裝的共享庫
當我正在調試Perl代碼時,有什麼方法可以將斷點設置到我的C庫中,或者當我運行此Perl腳本時,是否知道調試C庫的好方法/工具?
我正在使用Linux/gcc。
我做了一個簡單的事情。我在perl
口譯員處直接打電話給gdb
。
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
HTH
如果我正在使用Komodo,該如何進行調試? – rpg
嗨RPG。我不知道。我看了一眼,Komodo似乎是一個專門調試PERL腳本的IDE。我不知道在Perl調用共享庫時它是否能夠調試C/C++指令。對於GDB,起點是PERL解釋器的二進制文件。斷點設置在一行C/C++代碼中,而不是在Perl腳本的一行中。 –