使用GDB的print命令来打印std::vector对象。例如,如果你的std::vector对象名为vec,你可以使用以下命令打印它的内容: 这将显示std::vector对象的地址和元素数量。 接下来,使用GDB的set print pretty命令来启用pretty打印机。这将使GDB以更易读的方式显示std::vector对象的内容。例如: 接下来,使用GDB的set...
#include<iostream>#include<vector>classSimpleVec{private:int*k_data;std::size_tk_capacity;std::size_tk_size;public:explicitSimpleVec(std::size_tn){this->k_capacity=2*n;this->k_data=newint[this->k_capacity];this->k_size=n;}~SimpleVec(){delete[]this->k_data;}auto&operator[](std:...
在这个示例中,gdb能够直接显示std::vector<int>的内容,而无需手动遍历。 5. 说明如何根据需求自定义"pretty"调试输出 要自定义gdb的美化打印输出,你需要编写一个Python脚本,该脚本定义了如何打印特定类型的数据结构。以下是一个简单的示例,展示了如何为自定义结构体编写美化打印机: python import gdb import...
本文介绍了两种方法去优化显示GDB调试过程中的STL数据值,比如Vector、Map等。提高Debug的效率。 1. 开启pretty-print功能 在使用vscode调试时,不能像clion一样直接查看STL容器中的内容,比如String,只能看到指针和长度等信息,不能直接看到字符串。 在launch.json中添加如下配置,关于launch.json如何配置参考网上的资料和以...
一、pretty printer 即使在有调试器的情况下,打印(print)信息也是定位问题的重要和有效手段,所以一些变量的打印就非常重要,例如C++中流行的libfmt库,gcc扩展的"PRETTY_FUNCTION"宏变量。gdb作为调试程序的主要通用工具,也包含了对类型的pretty-print。 C++的容器类通常使用模板实现,源代码看起来比较繁琐,如果尝试从源代...
当程序运行到断点处时,可以使用"p"命令(或"print"命令的简写)来打印STL容器变量。例如,对于一个名为"myVector"的vector容器,可以输入"p myVector"来打印其内容。 通过以上步骤,你将能够在Gdb调试过程中以一种美观的方式打印输出STL容器的元素,而无需手动遍历容器并逐个打印。 推荐的腾讯云相关产品:腾讯云服务器(...
std::__debug::vector std::tr1::__7::unordered_set std::__7::basic_string std::weak_ptr std::__7::set std::__7::unordered_multiset __gnu_cxx::__7::__normal_iterator std::__cxx1998::__7::vector std::unordered_map
info vector -- Print the status of the vector unit info warranty -- Various kinds of warranty you do not have info watchpoints -- Synonym for ``info breakpoints'' info win -- List of all displayed windows 附注: 基本gdb命令: --- 命令 简写 功能 --- file 装入想要调试的可执行文件. kil...
handle SIGUSR1 nostop noprint 只运行当前线程 set scheduler-locking on gcc发现编译出来的程序无法调试 使用其他版本的编译 -gdwarf-3 -gdwarf-1 -gdwarf-2 -gdwarf-4 硬打印vector中的数据 p *(vt._M_impl._M_start)@1 vt, 容器名字 1,第几个元素,从1开始...
GDB调试STL的vector、list和map STL中提供了若干容器,在gdb调试的时候,因为其内部结构和元素数据类型方面因素,查看可是费了劲,把下面这个脚本保存为用户根目录下.gdbinit,当gdb启动的时候自动去加载,打印容器变量的时候自动识别识别调用很方便。 未加载脚本: