社区
新手乐园
帖子详情
如何调试C++源码
wxjiao
2009-04-14 07:57:16
由于工作需要,在Linux环境下安装了一个开源软件。安装顺利完成了,但是在应用的时候老是出现错误,提示“segmented fatal”,说是指针或内存错误。我想问,是不是只有修改完善源代码,然后重新编译安装软件才能解决这一问题;这个软件包含很多.cc和.h文件,如何在这些文件中快速有效地找出错误所在,需要什么编译软件或工具;怎样具体实施调试,这方面有没有比较好的教程;我对C++只能算是个菜鸟,完成这样的调试工作非常难吗?
谢谢,请高手指点!
...全文
195
17
打赏
收藏
如何调试C++源码
由于工作需要,在Linux环境下安装了一个开源软件。安装顺利完成了,但是在应用的时候老是出现错误,提示“segmented fatal”,说是指针或内存错误。我想问,是不是只有修改完善源代码,然后重新编译安装软件才能解决这一问题;这个软件包含很多.cc和.h文件,如何在这些文件中快速有效地找出错误所在,需要什么编译软件或工具;怎样具体实施调试,这方面有没有比较好的教程;我对C++只能算是个菜鸟,完成这样的调试工作非常难吗? 谢谢,请高手指点!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wxjiao
2009-04-14
打赏
举报
回复
info: Linking Tree Network Frame using map /home/jiaowenx/HLMDATA/MAPS/flowdir.asc /usr/local/bin/SME: line 1086: 18079 Segmentation fault (core dumped) ${SME_PROJ}/${ProjectName}/Driver/${RUN_TARGET} $TCL_SCRIPT $USE_SHELL $JAVA_RUN_ARGS $NO_CONF -ppath $SME3_PROJ -p $ProjectName -m $ModelName $CONFIG_INPUT -pause $PAUSE -scen $ScenarioName $SME_CONTROL_ARGS
说了啊,line 1086: 18079 Segmentation fault (core dumped)
我是连在服务器上的,没有根权限,是不是这个原因才没生成core文件的
ryuk33
2009-04-14
打赏
举报
回复
没有说core dumped??
那我也不知道了……
wxjiao
2009-04-14
打赏
举报
回复
[Quote=引用 14 楼 ryuk33 的回复:]
在这之前,先运行"ulimit -c 10240000"
[/Quote]
是先做了"ulimit -c 10240000"
又根据下面的步骤做的
1> 进入源码的目录:cd ~work/source
2> 执行程序 /usr/local/bin/SME
3> 在当前目录下,产生core.xxx(xxx为数字)
4> gdb /usr/local/bin/SME core.xxx
5> bt
还是不行,真是麻烦你了,谢谢
ryuk33
2009-04-14
打赏
举报
回复
在这之前,先运行"ulimit -c 10240000"
wxjiao
2009-04-14
打赏
举报
回复
没生成core文件,是不是运行SME没错,在SME>提示符下运行r才出错的原因啊。唉。。。。。。。。。。。。。
ryuk33
2009-04-14
打赏
举报
回复
[Quote=引用楼主 wxjiao 的帖子:]
由于工作需要,在Linux环境下安装了一个开源软件。安装顺利完成了,但是在应用的时候老是出现错误,提示“segmented fatal”,说是指针或内存错误。我想问,是不是只有修改完善源代码,然后重新编译安装软件才能解决这一问题;这个软件包含很多.cc和.h文件,如何在这些文件中快速有效地找出错误所在,需要什么编译软件或工具;怎样具体实施调试,这方面有没有比较好的教程;我对C++只能算是个菜鸟,完成这样的调试工作非常难吗?…
[/Quote]
这样的调试很可能比较难,看情况了
wxjiao
2009-04-14
打赏
举报
回复
[Quote=引用 10 楼 ryuk33 的回复:]
引用 4 楼 wxjiao 的回复:
/usr/local/bin/SME是可执行程序,在终端中运行SME run会出现
SME>提示符,在该提示符下再运行r时就会出现上述错误。
这样也可以按照您的方法操作吗,另外gdb xxx core.xxx中的xxx是什么。
我对这个实在是不熟悉,麻烦了
假设,源代码在
/home/work/source,那么:
1> 进入源码的目录:cd ~work/source
2> 执行程序 /usr/local/bin/SME
3> 在当前目录下,产生core.xxx(xxx为数字…
[/Quote]
非常感谢,我去试试
ryuk33
2009-04-14
打赏
举报
回复
[Quote=引用 4 楼 wxjiao 的回复:]
/usr/local/bin/SME是可执行程序,在终端中运行SME run会出现
SME>提示符,在该提示符下再运行r时就会出现上述错误。
这样也可以按照您的方法操作吗,另外gdb xxx core.xxx中的xxx是什么。
我对这个实在是不熟悉,麻烦了
[/Quote]
假设,源代码在
/home/work/source,那么:
1> 进入源码的目录:cd ~work/source
2> 执行程序 /usr/local/bin/SME
3> 在当前目录下,产生core.xxx(xxx为数字)
4> gdb /usr/local/bin/SME core.xxx
5> bt
wxjiao
2009-04-14
打赏
举报
回复
[Quote=引用 7 楼 hairetz 的回复:]
装个什么软件?自己报segmented fatal?那无语了.这么差劲
[/Quote]
装的时候还算顺利,就是运行的时候出现了错误
wxjiao
2009-04-14
打赏
举报
回复
info: Linking Tree Network Frame using map /home/jiaowenx/HLMDATA/MAPS/flowdir.asc /usr/local/bin/SME: line 1086: 16901 Segmentation fault (core dumped) ${SME_PROJ}/${ProjectName}/Driver/${RUN_TARGET} $TCL_SCRIPT $USE_SHELL $JAVA_RUN_ARGS $NO_CONF -ppath $SME3_PROJ -p $ProjectName -m $ModelName $CONFIG_INPUT -pause $PAUSE -scen $ScenarioName $SME_CONTROL_ARGS
这是出现的具体错误信息
猫已经找不回了
2009-04-14
打赏
举报
回复
装个什么软件?自己报segmented fatal?那无语了.这么差劲
liliangbao
2009-04-14
打赏
举报
回复
[Quote=引用 2 楼 wxjiao 的回复:]
文件夹里面有很多源代码文件,运行程序指的是运行安装后生成的可执行程序,还是源码程序?多谢。
[/Quote]
Up~
wxjiao
2009-04-14
打赏
举报
回复
core文件是在当前目录下生成吗
wxjiao
2009-04-14
打赏
举报
回复
/usr/local/bin/SME是可执行程序,在终端中运行SME run会出现
SME>提示符,在该提示符下再运行r时就会出现上述错误。
这样也可以按照您的方法操作吗,另外gdb xxx core.xxx中的xxx是什么。
我对这个实在是不熟悉,麻烦了
ryuk33
2009-04-14
打赏
举报
回复
运行“导致出错的可执行程序”
首先做到:在程序出错的时候,能生成core文件,其它的就好办
wxjiao
2009-04-14
打赏
举报
回复
文件夹里面有很多源代码文件,运行程序指的是运行安装后生成的可执行程序,还是源码程序?多谢。
ryuk33
2009-04-14
打赏
举报
回复
最简单的方法:
“ulimit -c 9000000”
然后,运行程序。它就会生成core文件
使用"gdb xxx core.xxx"
然后输入"bt"
就可以看到,是在哪一行代码出的问题
用gdb
调试
c++
程序(pytorch
c++
源码
)
用gdb
调试
c++
程序(pytorch
c++
源码
) ubuntu 上面应该已经有gdb了 如果当前目录下有一个hello.cpp程序 g++ -g hello.cpp -o hello gdb hello (gdb) b 1 相当于在第一行打了断点 b is short for breakpoint (gdb)run Breakpoint 1, main () at hello.cpp:1 接下来我用到的只有s(step into) n(next) q(quit) bt(backtrace) 另外遇
WinDbg
源码
级
调试
C++
程序
本篇作为 Windbg
调试
C++
源码
的抛砖引玉,希望能够给为各位对
C++
细节有研究兴趣的同学一个不同的角度。Windows
调试
和Windbg 工具本身的使用又是另外两个浩瀚的领域,学无止尽,共勉!
PyTorch
C++
源码
调试
2.python运行你写好的py代码,需要使用debug模式(让程序在进程在系统中保留,你可以用pdb.set_trace)实现或者用time.sleep()让程序休眠,以获取其进程号。不过我更加喜欢的是直接。运行此代码后在pdb.set_trace()部分暂停。网络上有很多方式,说一说我的测试(假设python代码为。1.使用Python编写 PyTorch 代码。3.gdb连接这个运行的python程序进程。
Flutter Engine
C++
源码
调试
初探
原文:https://fucknmb.com/2019/12/06/Flutter-Engine-C-%E6%BA%90%E7%A0%81%E8%B0%83%E8%AF%95%E5%88%9D%E6%8E%A2/ 备份防丢,推荐上述链接阅读 在Flutter Engine的自定义过程中,难免会对其进行
调试
,所谓工欲善其事必先利其器。
调试
的手段有多种,一般以日志输出和断点
调试
为主。本...
新手乐园
33,315
社区成员
41,770
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章