通过 GDB 在 C 中打印向量元素
在 GDB 中调试 C 代码时,检查 std::vector 的内容可能具有挑战性。例如,考虑一个名为 myVector 的 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 ,它可能会根据您的编译器版本而有所不同。因此,对于其他版本,建议查阅相关文档。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3