我有一个大小为 190 MB 的 C++ 二进制文件。当我将此二进制文件放入 dbx 并尝试创建断点时,dbx 挂起。当 dbx 挂起时,我观察到它的内存迅速增长到 10 GB 以上。TotalView 允许我设置断点;但是,它显示的所有数据都是伪造的。我已经成功调试了许多其他较小的二进制文件,所以我的预感是这个二进制文件的大尺寸是问题所在。
二进制:ELF 32 位 MSB 可执行文件 SPARC32PLUS 版本 1,V8+ 必需,动态链接,未剥离。
编译器:CC:Sun C++ 5.9 SunOS_sparc 2007/05/03。
数据库:7.6 SunOS_sparc 2007/05/03。
TotalView:8.2.0-0
操作系统:Solaris 10
我如何使用 Dbx:
dbx mybinary
stop at Something.cc:170
Dbx 永远不会从此命令返回,我最终必须从单独的终端杀死 Dbx。
我尝试了一些没有成功的事情:
1. 切换到动态链接大多数库,这将二进制大小减少到 19 MB。
2. 在 Solaris x86 上试过。
3. 将软件编译为64位。
有谁知道什么可能导致这种情况发生以及如何解决这个问题?