VSCode使用gdb调试C++时如何查看vector的iterator指向的元素
VSCode+GDB调试时查看vector iterator指向元素的实现方法
方法1:通过监视窗口可视化查看
- 打开VSCode左侧运行和调试面板,找到「监视」模块点击加号新增监视项
- 输入表达式
*<迭代器变量名>,即可实时显示迭代器当前指向的元素值 - 若迭代器指向自定义结构体/类对象,可输入
*<迭代器变量名>.<成员名>直接查看对应成员取值 - 若因GDB版本兼容问题识别不了迭代器类型,可替换表达式为
*<迭代器变量名>._M_current,直接读取gcc实现中迭代器内置的原生指针指向的内容
方法2:通过调试控制台执行GDB命令查看
- 切换到VSCode下方的调试控制台标签页
- 输入gdb命令
p *<迭代器变量名>回车,控制台会直接输出对应元素的完整内容 - 如需查看十六进制形式的内存数据,可输入命令
p/x *<迭代器变量名>
前置要求与注意事项
- 编译代码时必须添加
-g参数保留调试符号,否则会出现无法识别迭代器类型、无法读取内容的问题 - 不要查看未初始化、已超出vector有效范围的迭代器,会触发非法内存访问错误
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

