gdb

GDB资源集合:

https://sourceware.org/gdb/wiki/FAQ

Debug.Hacks中文版_深入调试的技术和工具

https://www.youtube.com/watch?v=-n9Fkq1e6sg (GDB - A Lot More Than You Knew)

 

gdb的其他操作

1、编译程序的时候加入-g参数,这样编译的时候加入一些额外的信息,这样在debug的时候能匹配到源码的某一行

2、最好不用用编译器的-O或者-O2编译,可能更改代码的执行顺序

3、如果在gdb中执行shell命令,可以用 ! comand或者 shell command执行

4、可以利用TAB进行命令补全

 

gdb调试stl

http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt存入到~/.gdbinit中,

之后就可以利用下列命令调试了

数据类型

GDB命令

std::vector<T>

pvector stl_variable

std::list<T>

plist stl_variable T

std::map<T,T>

pmap stl_variable

std::multimap<T,T>

pmap stl_variable

std::set<T>

pset stl_variable T

std::multiset<T>

pset stl_variable

std::deque<T>

pdequeue stl_variable

std::stack<T>

pstack stl_variable

std::queue<T>

pqueue stl_variable

std::priority_queue<T>

ppqueue stl_variable

std::bitset<n>td>

pbitset stl_variable

std::string

pstring stl_variable

std::widestring

pwstring stl_variable

 

tip:

1、只看子进程的gdb 命令: set follow-fork-mode child/paratent 默认跟踪的是paratent进程

2、vi $(which pstack) 可以学到不少gdb相关小技巧

 

gdb执行错误的解决办法:

1、 执行过程中,提示缺少动态库的解决办法: set environment LD_LIBRARY_PATH   /home/xxxx/lib

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值