>백엔드 개발 >C++ >예외를 잡을 때 GDB가 'raise.c 누락'이라고 외치는 이유는 무엇입니까?

예외를 잡을 때 GDB가 'raise.c 누락'이라고 외치는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-08 21:11:02363검색

Why Does GDB Cry

GDB의 애도: raise.c 누락 문제 해결

예외를 포착할 때 GDB에서 성가신 오류가 발생할 수 있습니다. "raise.c"가 없습니다. 이 문제를 해결하려면 문제의 깊이와 해결 방법을 살펴보겠습니다.

근본 원인

GDB에서는 누락된 "raise.c" 파일이 매우 중요합니다. 디버깅 중에 정확한 소스 라인 정보를 제공합니다. 이것이 없으면 GDB는 기본적으로 불확실한 위치로 설정되어 혼란스러운 오류 메시지로 이어집니다.

단계별 솔루션

이 문제를 효과적으로 해결하려면 다음 포괄적인 단계를 따르세요.

  1. Debuginfo 패키지 설치: C 라이브러리의 debuginfo 버전이 있는지 확인하세요. ("libc6-dbg")가 설치되었습니다.
  2. 소스 코드 패키지 활성화: "dpkg-dev" 패키지를 설치하고 해당 deb를 확인하여 소스 코드 패키지를 처리할 Ubuntu 패키지 시스템을 준비합니다. -"/etc/apt/sources.list"의 src 행은 주석 처리가 해제되어 있습니다.
  3. 소스 다운로드 코드: 디렉토리(예: "/opt/src")를 생성하고, "apt source libc6"을 실행하고, 소스 코드가 있는 디렉토리(예: " /opt/src/glibc-2.23").
  4. 소스 코드 위치 지정: GDB는 예상합니다. 특정 위치의 소스 코드. "info source"와 같은 "gdb" 명령을 사용하여 예상 디렉터리를 결정합니다. 실제 디렉터리와 예상 디렉터리가 다른 경우 "set replacement-path /build/glibc-KM3i_a/glibc-2.23 /opt/src/glibc-2.23"을 사용하여 GDB 경로를 업데이트하세요.

결론

이러한 단계를 준수함으로써 GDB는 누락에 대한 불만을 제기했습니다. 소스 파일은 침묵되어 예외를 원활하게 디버깅할 수 있습니다. 이제 C 라이브러리 코드를 자신있게 탐색하여 런타임 문제를 정확하게 진단하고 해결할 수 있습니다.

위 내용은 예외를 잡을 때 GDB가 'raise.c 누락'이라고 외치는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.