2014-01-30 3 views
1

내 애플리케이션 실행하기 Segmentation 오류가 발생합니다. 나는 내 코드가 실패 된 위치 확인 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

고마워요!

디버그 정보을 사용하여 라이브러리를 사용했고 지금 라이브러리 코드를 통과 할 수 있습니다.