2013-01-16 5 views
1

내가 GDB Qt는 또는 직접 터미널에서 하나를 통해 내 코어 덤프를 디버깅 할 때 그것은 나를 아래와 같은 경고 큼 제공합니다. 따라서 나의 백 트레이스가 제대로 작동하지 않습니다.GDB 디버깅 경고

경고 : libthread_db와 일치하는 inferior의 스레드 라이브러리를 찾을 수 없으면 스레드 디버깅을 사용할 수 없습니다.

경고 :의 열등 스레드 라이브러리를 일치 libthread_db 찾을 수 없습니다, 스레드 디버깅을 사용할 수 없습니다.

경고 :)에 대한 공유 라이브러리 기호를로드 할 수 없습니다. "set solib-search-path"또는 "set sysroot"가 필요합니까?

내 실행 파일이 디버깅 기호없이 빌드되었거나 glibc에 관한 문제 인 이유는 이것 때문입니까? 이 문제를 해결할 수있는 해결책이 있습니까?

+0

gdb가 언급 된 라이브러리를 찾을 수없는 것 같습니다. 공유 라이브러리 인 경우 환경에서 찾을 수 있도록 검색 경로가 설정되어 있는지 확인할 수 있습니다. 터미널 세션을 만들면 런타임과 동일한 환경을 상속받지 못할 수 있습니다. – Jay

답변

7

내 실행 파일이 디버깅 기호없이 빌드되었거나 glibc에 관한 문제인 이유는 무엇입니까?

이 실행 파일과는 아무 상관이 없습니다.

GDB에는 libpthread.so.0과 일치하는 libthread_db.so.1의 버전이 필요하며 그러한 버전을 찾을 수 없습니다.

가능한 원인 (대부분에 적어도 가능성에서) :

  • 당신은 제거했다 libpthread.so.0 ( 그렇게하지 않는다).
  • 당신은 당신의 glibc를 업그레이드했지만, 업그레이드가 불완전하고 필요 GDB는 찾을 수 있도록 set solib-search-path에 또는 set libthread-db-search-pathlibthead_db.so.1
  • 당신은 크로스 컴파일 환경의 어떤 종류를 사용하고
  • , 정말 를 업데이트하지 않았습니다 libthread_db.so.1

일치 당신은 libthread_db GDB의 버전 set debug libthread-db 1으로 노력하고 확인할 수 있습니다.

+1

libthread를 제거하지 않는 것에 대한 정보는 gdb에서 덤프 파일을 생성하는 문제를 해결하여 스레드 중 하나만 가진 덤프를 발생시킵니다 – HackerBaloo