我正在努力RHEL WS 4.5
。
我已经获得了匹配这个系统的 glibc 源 rpm,打开它使用 rpm2cpio 获取它的内容。
在该树中工作,我为 mtrace.c 创建了一个补丁(我想添加更多堆栈回溯级别)并将其合并到规范文件中,并创建了一组新的 RPM,包括 debuginfo rpm。
我将所有这些都安装在一个测试虚拟机上(从相同的 RH 基础映像创建),并且可以确认我的更改已包含在内。
但是对于更复杂的执行,我在 mtrace.c 中崩溃了……但是 gdb 找不到调试信息,所以我没有得到行号信息,我实际上无法调试失败。
根据日期,我想我可以确认在 /usr/src/debug/glibc-2.3.6/ 中的测试系统上安装了调试信息
我在 gdb 中尝试过
sharedlibrary libc*
,它告诉我符号已经加载。
我的测试包括一个本地构建的 python,并且为 python 找到了完整的符号。
我的感觉是 glibc 可能不是在启用调试的 rpmbuild 下构建的。我已经查看了 glibc.spec 文件,甚至使用
_enable_debug_packages
定义为 1 看起来可能会影响结果。我对 rpmbuild 构建步骤中调用的配置脚本的审查没有给我任何提示。
嗯..刚刚找到 /usr/lib/debug/lib/libc-2.3.4.so.debug 和 /usr/lib/debug/lib/tls/i486/libc-2.3.4.so.debug 但这两个报告为被 file 命令剥离。