c – 大型可执行文件导致调试程序挂起
发布时间:2020-12-16 07:28:58 所属栏目:百科 来源:网络整理
导读:我有一个190 MB的C二进制文件.当我将这个二进制文件放入dbx并尝试创建断点时,dbx会挂起.当dbx挂起时,我发现它的内存很快就会增长到10 GB以上. TotalView允许我设置断点;但是,它显示的所有数据都是虚假的.我已成功调试了许多其他较小的二进制文件,所以我的预
我有一个190 MB的C二进制文件.当我将这个二进制文件放入dbx并尝试创建断点时,dbx会挂起.当dbx挂起时,我发现它的内存很快就会增长到10 GB以上. TotalView允许我设置断点;但是,它显示的所有数据都是虚假的.我已成功调试了许多其他较小的二进制文件,所以我的预感是这个二进制文件的大尺寸是问题所在.
二进制:ELF 32位MSB可执行文件SPARC32PLUS版本1,V8必需,动态链接,不剥离. 我如何使用Dbx: dbx mybinary stop at Something.cc:170 Dbx永远不会从这个命令返回,我必须最终从一个单独的终端杀死Dbx. 我尝试了一些没有成功的事情: 有谁知道可能导致这种情况发生的原因以及如何解决问题? 解决方法
尝试使用其他调试器进行调试,以确定您的代码是否导致问题.我在Solaris上最喜欢的调试器是mdb:
mdb ./yourapplicationname > your_c_fn_name::bp > ::run 如果您使用C编码,请记住使用损坏的函数名称.您将nm输出管道输出到grep以找出您的错位函数名称是什么: nm ./yourapplicationname | grep yourc++fnname 如果mdb与dbx有同样的问题,那么我建议您查看一下代码.但是,如果mdb在没有问题的情况下访问bp,那么你可以使用mdb(据我所知,它不能使用源文件),或者你可以继续调整你的应用程序以使dbx满意. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |