필자는 최근 Linux에서 gcc 4.5.0과 binutils 2.20을 금으로 사용하여 새로운 툴체인을 출시했습니다. 이제 나는이 새로운 PGO에 대해 궁금해했다. 실행 파일과 함께 작동하는 방법은 분명하지만 공유 라이브러리에 대한 답을 찾을 수 없었습니다. Gmail을 통해 gcc 메일 링리스트에 답이없는 두 개의 게시물을 찾았습니다. 그게 전부입니다.gcc의 공유 라이브러리에서 프로필을 통한 최적화가 가능합니까?
그럼 내가 시도한 것은 다음과 같습니다. -fprofile-generate 플래그를 지정하지 않으면 모든 것이 잘되고 내 .so는 주 프로그램에 의해 dlopen()되어 완벽하게 작동합니다. -fprofile-generate로 컴파일하고 링크하면 라이브러리가로드되고 모든 것이 작동하지만 주 프로그램을 종료하면 코어 덤프가있는 sigsegv를 얻습니다.
나는 gdb를하는 corefile (핵심 파일)를 공급이 있어요 : 이#0 0x00000000 in ??()
No symbol table info available.
#1 0x1f32bc2f in ??()
No symbol table info available.
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
물론 더 .cdda 파일이 저장되지됩니다.
아이디어가 있으십니까?
필
GDB를 어떻게 실행 했습니까? 나는 당신이 이것을했다고 생각합니다 : "gdb core". 대신 이렇게하십시오 : "gdb exename core". 기회는 더 의미있는 스택 추적을 얻을 수 있습니다. 또는 GDB에서 실행 파일을 시작부터 실행하십시오 : "gdb exename"then "run". –
gdb exename core는 정확히 gdb를 실행 한 방법입니다. – Philipp