GDB高级调试命令总结

  • 常用快捷键:

ctrl+x+a                                   快捷键切回到传统模式

ctrl+x+o                                   切换窗口焦点

ctrl+x+1                                   显示一个src窗口

ctrl+x+2                                   显示两个窗口(src+asm)

  • 常用命令行参数:

以加参数方式调试应用程序

#gdb --args ./src/netperf -H 127.0.0.1 -p 8888 -t TCP_STREAM -l 10 -- -m 128000            

用gdb分析程序的dump文件或者内核的dump文件

#gdb program core            

  • 窗口切换命令:

>help layout                           查看有哪些界面布局

>layout src                              源码模式

>layout asm                            汇编模式

>winheight src +10                 调整源码窗口的高度

  • 单步执行

>ni                                          汇编单步执行        

>i source                                 查看当前源码文件的路径   

>finish                                     执行到函数返回   

  • 内存查看命令:
>i registers $rip                           查看rip寄存器的内容
>x /i $rip                                      以指令方式查看rip寄存器
>x /16xw xxx                                以16进制方式,每块的数据类型word,连续显式16个word数据值
>x /16xb $rip+0x83d623
>x /s $rdx                                                                         以字符串的方式显示寄存器rdx中的值
>p /t dst->dev->features                                                打印嵌套结构体中的变量
>p &((struct sock*)0)->sk_route_caps                             打印出结构体内子项的偏移
>p  *(struct tcphdr *)(skb->head+skb->transport_header)    打印出结构体的所有值
>p  *(fn)@12                                                                     打印数组
>p ((struct proc_inode *)((char *)inode-0x38))->op         打印container_of()功能
>set console_printk[0]=4                                                  改变内存中的值
>set  disassembly-flavor  intel                      设置为intel反汇编模块
>set print pretty on                                       设置 漂亮格式打印输出

>ptype  struct workqueue_struct                  显示结构体定义

  • 条件断点

    使用复杂的条件断点

>commands 22                        

->if (vport->port_no!=4)

->bt

->c

->else

->bt

->end

     使用简单的条件断点

>b  10 if index == 3        

  • 内核模块调试:

查看指定内核模块的内存加载地址

#cat /proc/modules |grep tun                                                                            

为指定模块加载symbol文件

>add-symbol-file /home/dawei/nzuta/nzuta.ko  0xffffffffa0423000        

猜你喜欢

转载自blog.csdn.net/softgmx/article/details/79406131