【Linux网络编程】gdb调试技巧

【Linux网络编程】gdb调试技巧_第1张图片

        这篇博客主要要记录一下自己在Linux操作系统Ubuntu下使用gbd调试程序的一些指令,以及使用过程中的一些心得。 

使用方法

可以使用如下代码

gcc -g test.c -o test
或者
gcc test.c -o test
​
-g的选项最好添加,如果不添加,l指令无法被识别
​
-o的选项就是将输出的文件重命名,否则都是a.out

gdb的控制

  1. l/L + 数字 指令

L/l用于查看调式的代码,后面添加的数字用于确定从第几行开始查看

【Linux网络编程】gdb调试技巧_第2张图片

但是一次最多只有10行

如果有参数,则从参数开始的10行。

  1. r(run)指令

从头开始运行代码,遇到设置的断点,段错误以及程序运行结束之后自动回到gdb命令行。

如果运行的代码时需要参数,可以在r后面添加如:(gdb)r arg1 arg2

  1. b + 数字 指令

该指令用于对指定行设置断点,使用r指令时就会在断点处停下来。

  1. n 指令

n指令用于将程序往下执行一行代码,但该指令不会进入函数里面。

【Linux网络编程】gdb调试技巧_第3张图片

  1. s(step)指令

s指令也用于将程序往下执行一行代码,但该指令会进入函数内部执行。

【Linux网络编程】gdb调试技巧_第4张图片

  1. p(print)+ 表达式

可以打印表达式的值,用于在调试过程中查看各个变量,数字,函数调用等。

【Linux网络编程】gdb调试技巧_第5张图片

  1. c(continue)

程序将继续向下运行,遇到设置的断点、段错误和程序运行结束时自动回到gdb命令行 。

设置多个断点时可以使用,r则会从开头开始执行。c从当前行开始。

  1. bt / where

用于显示程序堆栈信息,一般在遇到段错误时使用。

【Linux网络编程】gdb调试技巧_第6张图片

  1. q指令

q指令用于退出gdb调试。

【Linux网络编程】gdb调试技巧_第7张图片

  1. ctrl+c 以及 signal

程序运行时输入 ctrl+c ,回到gdb调试模式,输入(gdb) signal <信号> ,向程序发送信号。

  1. layout split

显示源代码和汇编窗口,能够看到断点位置,对照代码调试,更加直观。

【Linux网络编程】gdb调试技巧_第8张图片

        可以自己写一个小程序,并使用编译完使用gdb调试一下,相信会有很多收获的 

你可能感兴趣的:(Linux网络编程,linux)