一、gdb中宏定义
macro define list_entry(ptr, type, member) ((type)( (char)ptr - (unsigned long)(&((type*)0)->member)))
二、gdb中变量定位
set $i = 0
注:
操作符左右两端可以带空格;
变量以$开头,防止与被调试程序中的变量冲突
三、条件 & 循环
if ( xxx != 1 )
...
end
while( xxx != 1)
...
end
四、gdb调试输出到文件
有时,我们扫描core文件中的队列、map之类的全局变量,项比较多,输出到文件比较合适
方式一:
set pagination off
set logging file /tmp/xxx.log
set logging on
...
q
方式二:
将调试命令编写为脚本,然后执行如下命令
gdb -x xxx.sh ...