저는 RHEL WS 4.5
에서 일하고 있습니다.업데이트 된 소스의 rpmbuild에서 GLIBC 디버그 정보가 필요합니다.
이 시스템과 일치하는 glibc 소스 rpm을 얻었습니다. rpm2cpio를 사용하여 내용을 가져 와서 열었습니다.
mtrace.c (더 많은 스택 백 트레이스 레벨을 추가하고 싶습니다)에 대한 패치를 작성하여 스펙 파일에 통합하고 debuginfo RPM을 포함한 새로운 RPM 세트를 작성했습니다.
테스트 VM (동일한 RH 기본 이미지에서 생성)에이 모든 것을 설치했으며 변경 사항이 포함되었는지 확인할 수 있습니다.
더 복잡한 실행에서는 mtrace.c가 작동하지 않지만 gdb가 디버그 정보를 찾을 수 없으므로 회선 번호 정보를 얻지 못하고 실제로 오류를 디버그 할 수 없습니다. 날짜를 기준으로
는, 나는 디버그 정보가 /usr/src/debug/glibc-2.3.6/
의 테스트 시스템에 설치되어 있는지 확인할 수 있습니다 생각 나는 GDB에 sharedlibrary libc*
을 시도하고 기호가 이미로드되었음을 나타냅니다.
내 테스트에는 로컬로 빌드 된 파이썬이 포함되어 있으며 파이썬에는 전체 심볼이 있습니다.
필자의 생각은 아마도 glibc가 디버그가 활성화 된 rpmbuild에서 빌드되지 않는다는 것입니다. 나는 glibc.spec 파일을 검토하고, 심지어는 결과에 영향을 줄 수처럼 보였다 1로 정의
_enable_debug_packages
로 구축했습니다. rpmbuild 빌드 단계에서 호출 된 configure 스크립트에 대한 내 검토는 나에게 어떤 힌트도주지 않았다.
흠 .. 찾았습니다. /usr/lib/debug/lib/libc-2.3.4.so.debug 및 /usr/lib/debug/lib/tls/i486/libc-2.3.4.so입니다. 을 디버그하지만이 두 가지 모두 파일 명령에 의해 제거 된 것으로보고됩니다.
와우 ... 왜 2.3.6과 2.3.4의 불일치인지 눈치 채지 못했습니다. 난 그냥 rpm2cpio를 redid | cpio extract of : –
다시 시도하겠습니다. 웹 사이트에서 캐리지 리턴 키를 사용하지 못하게합니다. –
이것은 미친 짓입니다 ... 어떤 이유로이 상자에 새 줄을 쓸 수 없습니다 ... –