24小时热门版块排行榜    

查看: 1267  |  回复: 5
当前主题已经存档。

xirainbow

木虫 (正式写手)

[交流] 【原创】使用gdb进入pwscf的调试模式 已有3人参与

进入gdb模式后,就可以跟踪程序是如何运行的,进而理解源程序中的物理意义。
原文网址:http://blog.sina.com.cn/s/blog_5f15ead20100gido.html

如何进入gbd模式
>./configure --disable-parallel FFLAGS="-g" CFLAGS="-g"
>make pw
>cd /home/raman/espresso/example/example01/result
>gdb /home/raman/espresso/PW/pw.x
>start si.scf.david.out
>step
然后一直按回车,就可以一行一行的执行;输入print 变量名 就可以输出某个变量的当前数值。
有用的gdb命令:l,s,n,file,bt,r,start,q,b。http://dsec.pku.edu.cn/~yuhj/wiki/gdb.html
如果程序编译时开启了优化选项,那么在用GDB调试被优化过的程序时,可能会发生某些变量不能访问,或是取值错误码的情况。因为优化程序会删改你的程序,整理你程序的语句顺序,剔除一些无意义的变量等。对付这种情况时,需要在编译程序时关闭编译优化。例如,GNU 的C/C++编译器GCC,可以使用“-gstabs”选项来解决这个问题。(但是我使用-gstabs,-gstabs+或是"-g O1"都会出这样或那样的问题:无法查看源文件、no access to memory access。最后发现-g是出问题最少的)

[ Last edited by xirainbow on 2010-2-21 at 11:27 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chuzhaonan

铁杆木虫 (著名写手)

第一性原理计算大师

顶一下,努力学一下
玩第一性原理就如看大片
2楼2010-02-21 10:36:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

watermall

金虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
qasd(金币+1):xiexie 2010-02-22 08:22
支持
但是这种调试模式是为了查找bug用的吧
要理解程序原理和算法,看源代码是最好的
不过如果懂得了gdb模式,帮助也是应该也有的
3楼2010-02-21 19:05:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

idoldog

铜虫 (小有名气)


小木虫(金币+0.5):给个红包,谢谢回帖交流
居然用gdb编译...比intel慢了至少5倍
4楼2010-04-09 22:18:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
顶一下先。
5楼2010-04-10 12:48:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dxcharlary

专家顾问 (职业作家)


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by idoldog at 2010-04-09 22:18:45:
居然用gdb编译...比intel慢了至少5倍

gdb的编译速度就算和gcc比也是差很多了。
6楼2010-04-10 19:07:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuluo12139

铁虫 (初入文坛)


小木虫(金币+0.5):给个红包,谢谢回帖
不错,很好,谢谢啊!
7楼2011-08-24 21:56:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xirainbow 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见