ChinaUnix.net
相关文章推荐:

gdb 指针 结构体

我写的Pro-C程序 调试的时候出现了问题,中间出错了 所以我想看一下sqlca.sqlcode的值 出现了如下问题: (gdb) p sqlca.sqlcode A syntax error in expression, near `.sqlcode'. 然后我又这样打印也不行 (gdb) p sqlca Attempt to use a type name as an expression :em11: :em11: :em11: 这是怎么回事?

by GodPig - C/C++ - 2008-12-19 16:30:37 阅读(5533) 回复(1)

相关讨论

记得以前gdb可以直接把一个大结构的所以元素的值列出来。 就是例如struct student *p_student, 直接print p_student就可以看到所以的该结构的元素值。 不用print p_student->;score等一个个看 今天看了半天gdb的help,也没找到。 前辈们提个醒?

by archphoenix - C/C++ - 2003-08-22 11:30:35 阅读(2370) 回复(3)

int main(){ char ch[15]; ........ } 函数调用,我理解的栈结构应该是这样的 上一栈结构 (参数2) (参数1) eip ebp 这一栈开始 ch 。。。。。 大致是这样吧 但是加了 -g后好像就不是了 进入gdb后,info f(main这一层的栈结构) 显示的是 eip at 0xbffff1dc ebp at 0xbffff1d8, edi at 0xbffff1d4, esi at 0xbffff1d0, &ch at 0xbffff1c0. 为什么?在局部变量ch和ebp间那两个寄存器中是什么值? 晕!!

by greyzp - C/C++ - 2005-01-07 14:01:23 阅读(1491) 回复(16)

我在c程序的头部有两个变量 int buf[]={1,2,3}; int *b2={4,5,6}; 然后gcc -g编译,gdb运行r (gdb) p buf $1={1,2,3} (gdb) p b2 $2=(int*) 0x2 为什么gdb能打印出来静态数组? 它怎么知道这个buf有多大? $2的打印结果我能理解,$1的打印结果我就没法理解了。如果说buf是放在数据段里面的,难道说数据段里面还有地方指名所有静态数组变量的大小么? 学汇编的时候没有注意到过啊。 请大虾指点!

by jeanlove - C/C++ - 2008-10-09 18:34:15 阅读(3716) 回复(2)

gdb调试程序,用PRINT只能看到一个变量的值。 如我想调试一个链表程序,链表不停的连接下去。我想看当前节点的下一个节点的值,我只能PRINT当前节点,然后看到的是当前节点的NEXT域,同样是一个地址,从而无法想VC调试那样,可以不停的连接下去,下个节点的值直接显示出来。 同志们,有没有什么好的办法?谢谢。

by ronaldoa - C/C++ - 2009-03-11 12:55:20 阅读(3652) 回复(4)

只有代码,太难懂了!是不是我没有找到?

by xiangshifu - C/C++ - 2004-10-06 00:05:44 阅读(1137) 回复(4)

file a.out list 在使用gdb调试程序时想要列出源代码但报错: 1 ../sysdeps/i386/elf/start.S:没有那个目录或文件 in ../sysdeps/i386/elf/start.S 不知是什么原因

by wangxiaoguang - C/C++ - 2008-08-02 08:35:49 阅读(1685) 回复(8)
by 一刀砍死 - IT图书与评论 - 2007-12-16 10:49:55 阅读(2533) 回复(0)

(gdb) where #0 0xe784 in normal+0x2c () 请问后面的+0x2c ()什么意思?

by dutysmart - C/C++ - 2009-04-21 09:50:23 阅读(1140) 回复(0)

gdb prog core #0 0xc003bc98 in () where warning: gdb cannot print complete stack trace since some shared libraries are missing. Set gdb_SHLIB_PATH and try again. #0 0xc003bc98 in () warning: Attempting to unwind past bad PC 0xc003bc98 #1 0xc003b69c in () #2 0xc003b69c in () Cannot access memory at address 0x7 ...

by dutysmart - C/C++ - 2009-04-20 12:07:40 阅读(1403) 回复(0)

使用gdb和vim调试程序,如果在gdb状态下想修改源码,必须先退出gdb,然后再用vim打开源文件,好麻烦阿,请问,在gdb调试状态下可以直接更改源代码或者重新编译吗,谢谢

by skyguide - C/C++ - 2008-09-01 22:51:25 阅读(1748) 回复(9)