GDB使用小结

欢迎关注我的个人公众号:coredump。

基本操作

命令 说明
gdb exceFile 不带命令行参数
gdb -args execFile arg0 ... argn 带命令行参数
r 开始执行(run的简写)。
c 执行到下一个断点(continue的简写)
b <行号> 在某行设置断点(b是break的简写)
b <函数名> 在某函数设置断点
d <断点编号> 删除断点。每次设置断点后,每个断点都会有一个编号
s 单步执行之Step Into
n 单步执行之Step Over
si 汇编指令之Step Into
ni 汇编指令之Step Over
display var 跟踪显示变量var。以后每次程序用到变量var,都会打印其值
undispay <编号> 取消跟踪显示
p var 打印变量var一次。p是print的缩写

多进程/多线程

命令 说明
set follow-fork-mode child 设置fork之后跟踪子进程,而默认是父进程
info thread 查看当前调试进程的线程信息
thread ID 切换跟踪的线程。这里的ID是上面info thread得到的
break file.c:100 thread all 设置一个针对所有线程的断点

打印STL

下载stl-views

将其加入到~/.gdbinit中,即可使用。

正在执行的gdb可以使用source ~/.gdbinit

命令 说明
pvector std::vector<>
plist std::list<>
plist_member std::list<>
pmap std::map<> std::multimap<>
pmap_member std::map<> std::multimap<>
pset std::set<> std::multiset<>
pdequeue std::deque<>
pstack std::stack<>
pqueue std::queue<>
ppqueue std::priority_queue<>
pbitset std::bitset
pstring std::string
pwstring std::wstring
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • layout: "post"title: "29/70 GDB使用小结"date: "2017-03-28 21:...
    noparkinghere阅读 541评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,366评论 25 708
  • 随着电商的发展,淘宝、京东、唯品会、拼多多等等等购物软件让人目不暇接。如今大部分的人都偏爱淘宝,但淘宝也不...
    顾锦毓阅读 467评论 0 0
  • ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(CO...
    wangchuang2017阅读 606评论 0 0
  • 2017年12月13日 阴 夏天的西瓜味儿冲进舌尖 肆意飞溅的水花像雪莲 我还是声音响亮的喊 翻过山会遇见神仙 剥...
    鲜栗子阅读 195评论 1 3

友情链接更多精彩内容