![]() |
1
274
使用GCC 4.1.2,打印整个std::vector<int>称为myVector,请执行以下操作:
要仅打印前N个元素,请执行以下操作:
这可能在很大程度上取决于编译器版本,但对于GCC 4.1.2,指向内部数组的指针是:
或者,简而言之(对于标准的.gdbinit):
|
![]() |
2
82
要查看vector std::vector myVector内容,只需键入GDB:
这将产生类似于以下内容的输出:
要实现上述目标,您需要有GDB7(我在GDB7.01上测试了它)和一些python漂亮的打印机。有关这些的安装过程,请参见 gdb wiki . 日食 |
![]() |
3
14
将以下内容放入~/.gdbinit
重新启动gdb(或sourcing~/.gdbinit)后,显示如下相关帮助
|
![]() |
4
13
调试时“监视”STL容器有些问题。下面是我过去使用过的3种不同的解决方案,它们都不是完美的。 http://clith.com/gdb_stl_utils/ 这些脚本允许您打印几乎所有STL容器的内容。问题是,这不适用于像集合堆栈这样的嵌套容器。
3) 为调试时要打印的特定项编写自己的“打印”函数(或方法),并在GDB中使用“调用”打印该项。请注意,如果您的print函数没有在代码中的任何地方被调用,g++将执行死代码消除,并且GDB将找不到“print”函数(您将收到一条消息,说明该函数是内联的)。因此,使用-fkeep内联函数进行编译 |
![]() |
5
0
派对有点晚了,所以下次我做这个搜索的时候给我一个提醒! 我已经能够使用:
从中打印4个元素(十六进制)
|
![]() |
rammanoj · 使用目标远程本地主机:26000 6 年前 |
![]() |
Ray · 在D中引发异常时,如何使调试器中断? 6 年前 |
![]() |
Zhou · 如何使用当前IP和BP寄存器计算出完整的调用堆栈? 6 年前 |
![]() |
Kajsa · gdb日志记录不工作 6 年前 |