2012-01-13 2 views
0

reWhen 코어 파일을 분석하는 잘못된 크기 fpregset, 내 GDB 7.0 출력 여러 경고 :GDB : 코어 파일

warning: Wrong size gregset in core file. 
warning: Wrong size fpregset in core file. 
warning: Wrong size gregset in core file. 
warning: Wrong size fpregset in core file. 
warning: Unable to find dynamic linker breakpoint function. 
GDB will be unable to debug shared library initializers 
and track explicitly loaded dynamic code. 

나는 그와 관련된 경우 잘 모르겠지만, 나는 역 추적을 얻을 수 없습니다입니다 :

(gdb) bt 
#0 0x00000000 in ??() 

OS 아키텍처는 SUN Solaris 10 SPARC입니다.

질문 :

  1. 이 경고의 이유/원인이 무엇입니까?
  2. 백 트레이스를 검색 할 수없는 이유는 무엇입니까?
  3. 이 문제를 해결하는 방법은 무엇입니까?

답변

0

문제는 gdb 프로그램에서도 발생할 수 있습니다. gdb를 최신 버전 (7.3.1)으로 업데이트하는 것이 좋습니다. 또한 간단한 테스트 프로그램을 작성하고 유틸리티가 잘 작동하는지 확인하기 위해 gdb로 코어를 분석하는 것이 도움이 될 수 있습니다.

"gregset"및 기타 오류는 gdb가 코어 파일에서 데이터를 읽을 수 없음을 나타냅니다. 프로그램이 거칠어지고 손상된 스택으로 인해 발생할 수 있습니다. gregset 오류는 gdb가 코어 파일에서 범용 레지스터 집합을 읽을 수 없음을 의미합니다. fpregset은 부동 소수점 레지스터 세트입니다. 예상되는 레지스터 크기는 플랫폼에 따라 다릅니다.

코어 파일을 제대로 읽을 수 없다면 bt가 작동하지 않습니다.

0

솔라리스 10에서 gdb 7.6.2로 64 비트 코어 덤프를 사용하려고 시도했을 때 fpregset 경고 (스택 추적 없음)도있었습니다. 솔라리스 10의 userspace 애플리케이션이 컴파일 된 것 같습니다. 기본적으로 32 비트를 지원하며 64 비트 코어 펌프는 지원하지 않습니다. GDB의 IRC 채널에서

사람은 나에게 다음과 같은 매개 변수를했다 : 나는 또한 GDB (-m64)의 64 비트 버전을 컴파일

--enable-64-bit-bfd 

을,하지만 필요는 없습니다. 이제 gdb가 64 비트 코어 덤프에서 작동하고 경고없이 스택 추적을 만들 수 있습니다.