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 ()

Как вы можете видеть, все происходит из библиотеки, кроме вызова «main» и «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

Решение

Спасибо, парни!

Я использовал библиотека с отладочной информацией и теперь я могу пройти через код библиотеки.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]