2014-01-30 41 views
1

運行我的應用程序我得到一個分段錯誤。我跑了GDB以檢查我的代碼是失敗,但我得到了以下的輸出:GDB:進入庫

Program received signal SIGSEGV, Segmentation fault. 
0x39ca8000 in ??() 
(gdb) bt 
#0 0x39ca8000 in ??() 
#1 0xb7d5df9a in sc_core::sc_port_base::complete_binding()() from /opt/systemc-2.2-rel/lib/libsystemc.so.2.2 
#2 0xb7d5e104 in sc_core::sc_port_registry::complete_binding()() from /opt/systemc-2.2-rel/lib/libsystemc.so.2.2 
#3 0xb7d5e13e in sc_core::sc_port_registry::elaboration_done()() from /opt/systemc-2.2-rel/lib/libsystemc.so.2.2 
#4 0xb7dc669d in sc_core::sc_simcontext::elaborate()() from /opt/systemc-2.2-rel/lib/libsystemc.so.2.2 
#5 0xb7dc8567 in sc_core::sc_simcontext::initialize(bool)() from /opt/systemc-2.2-rel/lib/libsystemc.so.2.2 
#6 0xb7dc8b19 in sc_core::sc_simcontext::simulate(sc_core::sc_time const&)() from /opt/systemc-2.2-rel/lib/libsystemc.so.2.2 
#7 0xb7dc9708 in sc_core::sc_start(sc_core::sc_time const&)() from /opt/systemc-2.2-rel/lib/libsystemc.so.2.2 
#8 0x080555a8 in sc_core::sc_start (duration=40000, time_unit=sc_core::SC_MS) at /opt/systemc-2.2-rel/include/sysc/kernel/sc_simcontext.h:608 
#9 0x08055119 in sc_main (argc=1, argv=0xbffff524) at module_pfn.cpp:49 
#10 0xb7dbc698 in sc_elab_and_sim() from /opt/systemc-2.2-rel/lib/libsystemc.so.2.2 
#11 0xb7d522e7 in main() from /opt/systemc-2.2-rel/lib/libsystemc.so.2.2 
#12 0xb7a2e4d3 in __libc_start_main() from /lib/i386-linux-gnu/libc.so.6 
#13 0x08054da1 in _start() 

正如你所看到的,一切都來自一個圖書館,除了「主」電話和「開始」,我在那裏設置斷點,但他們立即失敗。我的意思是:

#8 0x080555a8 in sc_core::sc_start (duration=40000, time_unit=sc_core::SC_MS) at /opt/systemc-2.2-rel/include/sysc/kernel/sc_simcontext.h:608 
#9 0x08055119 in sc_main (argc=1, argv=0xbffff524) at module_pfn.cpp:49 
... 
(gdb) br /opt/systemc-2.2-rel/include/sysc/kernel/sc_simcontext.h:608 
Breakpoint 2 at 0x8055584: file /opt/systemc-2.2-rel/include/sysc/kernel/sc_simcontext.h, line 608. 
(gdb) r 
Starting program: /home/guest/Solutions/eln/systemc-ams/module_pfn 
... 
Breakpoint 2, sc_core::sc_start (duration=40000, time_unit=sc_core::SC_MS) at /opt/systemc-2.2-rel/include/sysc/kernel/sc_simcontext.h:608 
608  sc_start(sc_time(duration, time_unit)); 
(gdb) s 

Program received signal SIGSEGV, Segmentation fault. 
0x39ca8000 in ??() 

我們又回到起點。

我無法理解這是哪裏失敗。我看到這裏有這個失敗的地方的名稱:sc_core::sc_port_base::complete_binding(),我可以訪問cpp這裏可以找到這個功能,但只能在源文件(不是庫)中找到。問題是,我真的想要一步一步地通過該代碼,這有可能嗎?

謝謝:)

+1

調試版本或優化版本? – DumbCoder

+0

注意:問題可能在您的代碼中,而不是在庫中。 –

+0

@DumbCoder可能優化的構建。我會嘗試如果我可以得到'調試版'。這取決於編譯權嗎?有沒有這樣的選擇? – makeMonday

回答

0

謝謝你們!

我用一個庫調試信息現在我可以通過庫代碼。