개발 환경이 아닌 Linux 배포판에서 생성된 코어 파일을 디버깅하는 경우 , 스택 추적이 안정적이지 않을 수 있습니다. 동적으로 링크된 실행 파일은 배포판에 따라 구현이 다를 수 있는 공유 라이브러리를 사용합니다. GDB는 고객 시스템의 버전과 다를 수 있는 개발 환경에서 사용 가능한 라이브러리 버전을 사용하려고 시도합니다. 결과적으로 스택 주소가 다른 루틴에 매핑되거나 명령어 내에 위치할 수 있으며 이는 부정확한 스택 추적을 나타냅니다.
의미 있는 스택 추적을 얻으려면 다음에서 모든 공유 라이브러리를 획득하십시오. 고객 시스템에 설치하고 GDB에서 solib-absolute-prefix 경로를 설정합니다. 이렇게 하면 기호 확인을 위해 고객의 라이브러리를 사용하도록 GDB가 리디렉션됩니다.
고객에게 -g 바이너리를 실행하라고 조언하는 대신 다음을 수행하는 것이 좋습니다.
이 접근 방식은 배송 없이 완전한 기호 정보를 제공합니다. 고객에게 디버그 바이너리를 제공하거나 민감한 소스 코드를 노출합니다.
디버깅에 대한 추가 통찰력을 얻으려면 다음 리소스를 참조하는 것이 좋습니다.
Linux:
Solaris:
이 책은 Linux 및 Solaris 디버깅을 위한 실제 예제와 고급 기술을 제공합니다. 어셈블리 분석을 포함합니다.
위 내용은 다양한 Linux 배포판에서 생성된 코어 파일을 안정적으로 디버깅하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!