通过打印内部元素地址内容的方式,查看vector元素内容,不限gcc版本:
(gdb) p *(vec._M_impl._M_start)@3
$1 = {5, 2, 0}
(gdb) p *(vec._M_impl._M_start+0)
$2 = 5
(gdb) p *(vec._M_impl._M_start+1)
$3 = 2
vector的大小貌似只能尝试指定,不能动态计算。
gdb打印c++ std::vector元素内容
来源:清泛原创 2021-05-19 16:21:33 人气: 我有话说( 0 人参与)
使用GDB调试程序或coredump时,直接 p vec 打印的是vector内部成员的信息,不能直观输出元素的内容。通过打印内部元素地址内容的方式,查看vector元素内容,不限gcc版本:(gdb)
(gdb) p *(vec._M_impl._M_start)@3
$1 = {5, 2, 0}
(gdb) p *(vec._M_impl._M_start+0)
$2 = 5
(gdb) p *(vec._M_impl._M_start+1)
$3 = 2
vector的大小貌似只能尝试指定,不能动态计算。
上一篇:Eclipse CDT利用gdbserver远程调试
下一篇:c++11 std::call_once只调用一次函数,类似单例模式