我想检查 std::vector
的内容在 GDB 中,我该怎么做?假设它是 std::vector<int>
为了简单起见。
最佳答案
使用 GCC 4.1.2,要打印名为 myVector 的整个 std::vector
print *(myVector._M_impl._M_start)@myVector.size()
要仅打印前 N 个元素,请执行以下操作:
print *(myVector._M_impl._M_start)@N
说明
这可能很大程度上取决于您的编译器版本,但对于 GCC 4.1.2,指向内部数组的指针是:
myVector._M_impl._M_start
从指针 P 开始打印数组的 N 个元素的 GDB 命令是:
print P@N
或者,以简短的形式(对于标准 .gdbinit):
p P@N
关于c++ - 如何在 GDB 中打印 C++ vector 的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/253099/