栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

GDB的个人浅析

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

GDB的个人浅析

前言:如果说gtest是静态地给程序把脉看病,分析问题,解决问题,那么GDB就是动态地实时地给程序分析和解决问题。(gtest相关链接:gtest的个人经验总结_《一刀流》-CSDN博客)

那么GDB如何动态地跟踪程序呢?这就不得不提ptrace系统调用了,它有点像现在的中间商,不过不赚差价,会一五一十地观察和控制子进程的一举一动。用户干嘛,它就让目标程序干嘛,不会乱来。

 1.用法

网上总结了很多基本命令,这里就不赘余了,主要讲讲项目中GDB如何发挥他更大的作用。

a.首先你得知道,你需要调试的进程号,可以通过ps ax |grep xxx进行查看;

b.然后GDB,进入调试,通过attach xxx,依附你要调试的进程;

c.设置你的sysroot目录,set  sysroot /;

d.在程序的一个必经之路,或者你想知道某个函数那里打断点,b xxx_func;

e.bt 可以多次用 //backtrace 查看函数的调用的栈帧和层级关系,简写bt 

f.frame 1  //fr 1 

g.info frame  //frame:切换函数的栈帧

2.细节

a.可以先r运行一下,再ctrl c,保证程序启动;

b.info sharedlibrary 查询进程的依赖库;

c.info threads //*代表所在的线程;

d.thread apply all bt  //所有线程的bt

e.thread apply 1 bt  //第一个线程bt

f.set solib-search-path /opt/libs:/opt/webengine/lib //设置依赖库路径

g.gdb 进程 coredump //解coredump (gzip -d xxx  再bt)

友情链接:

LINUX下GDB的使用方法(简单说说)_longfan的博客-CSDN博客_gdb

gdb调试的基本使用_zdy0_2004的专栏-CSDN博客_gdb调试

gdb基本命令(非常详细)_yinjiabin的博客-CSDN博客_gdb

gdb的工作原理_qinm的专栏-CSDN博客_gdb原理

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/679609.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号