ChinaUnix.net
相关文章推荐:

gdb 打印数组

我在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 阅读(3712) 回复(2)

相关讨论

我写的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 阅读(5507) 回复(1)

数组用指针定义的 在gdb中:disp *array时,只显示数组第一个元素的值 请问如何才能使之显示数组的全部值!

by amyn - C/C++ - 2004-04-23 10:33:23 阅读(2440) 回复(1)

我想将gdb打印的结构写入到文件中,如何做? 如: (gdb)p a_struct (gdb) $1 = { cmmst = {{ stat = 1, stat_old = 4294967295, fltlock = 0, rstflg = 0 '\0', port = "", dmy = 255 '' ....... 这时结果打印到了屏幕上,如何输出到文件

by zhangzilong_84 - Shell - 2011-05-13 02:33:10 阅读(5352) 回复(9)

请高手执教 补充: 比如下面positions是一个int数组,text是一个wstring类型 (gdb) p positions $8 = { >> = { _M_impl = {> = {<__gnu_cxx::new_allocator> = {}, }, _M_start = 0x36d6630, _M_finish = 0x36d6638, _M_end_of_storage = 0x36d6638}}, } (gdb) p text $9 = {static npos = 184...

by cc007cc - C/C++ - 2009-11-22 21:55:39 阅读(36927) 回复(16)

gdb环境下如何打印出map的内容

by jiangf - C/C++ - 2008-07-17 19:29:42 阅读(10083) 回复(5)

比如 08048074 <_start>: 8048074: ba 0e 00 00 00 mov $0xe,%edx 8048079: b9 98 90 04 08 mov $0x8049098,%ecx 804807e: bb 01 00 00 00 mov $0x1,%ebx 8048083: b8 04 00 00 00 mov $0x4,%eax 8048088: cd 80 int $0x80 804808a: bb 00 00 00 00 mov $0x0,%ebx 804808f: b8 01 00 00 00 ...

by justlooks - C/C++ - 2009-03-27 11:36:43 阅读(934) 回复(0)

我定义了一个a[1024],每次p的时候都是显示一部分,请问如何让他打印出全部1024个字符呢? 谢谢

by john.daker - C/C++ - 2015-03-03 19:54:06 阅读(12181) 回复(6)

gdb中可以用p命令打印某变量的值, 如: int i=3; gdb> p i gdb> 3 请教: gdb中能否打印内存中某个位(或某些位)的值??? 比如想打印最低位的值或者打印第0~第3位的值???

by redac - C/C++ - 2007-01-23 23:40:00 阅读(2960) 回复(3)
by winket_831104 - C/C++ - 2007-01-22 10:37:25 阅读(1806) 回复(4)

(gdb) stepi 0x080483e1 21 begin =(char*) malloc(300*1024); (gdb) p $esp $1 = (void *) 0xbfffc6a4 (gdb) si 0x080483e6 21 begin =(char*) malloc(300*1024); 0x080483e6 行的实际指令是: 0x080483e6 : call 0x80482c8 如何使得运行si后打印出下一条需要执行的汇编代码,而不是那条c语句呢? 请各位指点指点吧。 谢谢。

by mingjwan - C/C++ - 2006-03-04 09:25:49 阅读(1147) 回复(0)