这个不错,原来gdb可以这样用……原来遇到一个给gfortran程序加入条件断点的事情,发现gdb对每种语言的条件断 点语法有其本身的规定。
比如C可以使用 b 7 if i==5 && a==7原来以为Fortran也可以用这种格式,发现不行,而且使用F90以上的语法也无法设 置条件断点,必须严格采用F77语法: b 7 if (i.eq.5).and.(a.eq.7)
是不是gdb对其他可以支持的语言(ASM、ADA、objc、java)加入条件断点也是使 用专用的语法呢?
于 2011/4/14 13:57, Liu 写道:
多次被渔夫鄙视我不会用gdb,也确实不会用,不知道怎么定位到出问题的地方,要不然就是next半天到不了,要不然就是不小心run过去了。本来可以反向调试的,结果被global给悲剧了。 我先来个最简单的: 首先在终端输入 mips64el-unknown-linux-gnu-gcc -v test.c 你会得到类似的屏幕输出: /opt/cross/bin/../libexec/gcc/mips64el-unknown-linux-gnu/4.5.1/cc1 -quiet -v -imultilib . -iprefix /opt/cross/bin/../lib/gcc/mips64el-unknown-linux-gnu/4.5.1/ test.c -mel -quiet -dumpbase test.c -mabi=64 -mllsc -mno-synci -mno-shared -auxbase vaddpd -version -o /tmp/ccYKybvB.s 这个是真正cc1的编译的命令,不用管那么多,直接复制下来。 gdb --args 跟上刚才上面那一段,就可以调gcc了。
-- Best Regards, PcX