我有一个 C++ 二进制文件,大小为 190 MB。当我将此二进制文件放入 dbx 中并尝试创建断点时,dbx 会挂起。在 dbx 挂起期间,我观察到其内存迅速增长到超过 10 GB。TotalView 允许我设置断点;然而,它显示的所有数据都是虚假的。我已经成功地调试了许多其他较小的二进制文件,所以我的直觉是这个二进制文件的巨大大小是问题的原因。
二进制文件:ELF 32 位 MSB 可执行 SPARC32PLUS 版本 1,需要 V8+,动态链接,未剥离。 编译器:CC:Sun C++ 5.9 SunOS_sparc 2007/05/03。 Dbx:7.6 SunOS_sparc 2007/05/03。 TotalView:8.2.0-0 操作系统:Solaris 10
我如何使用 Dbx:
二进制文件:ELF 32 位 MSB 可执行 SPARC32PLUS 版本 1,需要 V8+,动态链接,未剥离。 编译器:CC:Sun C++ 5.9 SunOS_sparc 2007/05/03。 Dbx: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位。
是否有人知道是什么原因导致这种情况发生,并如何解决这个问题?