通过 GDB 在 C 中打印向量元素
在 GDB 中调试 C 代码时,检查 std::vector 的内容可能具有挑战性。例如,考虑一个 std::vector
在 GCC 4.1.2 中,解决方案涉及访问向量的内部指针 myVector._M_impl._M_start,它指向保存向量元素的数组。
要打印整个向量,请使用:
print *(myVector._M_impl._M_start)@myVector.size()
要仅打印前 N 个元素,请将其修改为:
print *(myVector._M_impl._M_start)@N
推理
这种方法利用 GDB 命令从给定指针开始打印数组的 N 个元素。在本例中,指针是 myVector._M_impl._M_start,我们使用 myVector.size() 指定要打印的元素数量或所需的计数 N。
虽然此方法适用于 GCC 4.1.2 ,它可能会根据您的编译器版本而有所不同。因此,对于其他版本,建议查阅相关文档。
以上是如何使用 GDB 在 C 中打印向量元素?的详细内容。更多信息请关注PHP中文网其他相关文章!