GDB调试工具
作用:可以让我们自己的程序在Ubuntu中按照我们自己的控制,让代码单步运行,在运行的同时,可以打印出各种变量的值和地址
我们可以把我们的程序运行到GDB这个环境上面去(类似于windows中的各种调试工具)
安装GDB工具:
sudo apt install gdb
如何把代码放到这个环境上面去调试呢?
1.编译程序的时候需要加上调试信息
gcc -g 1.c -o 1
可执行文件1中包含了gdb调试的信息,这个程序可以运行到gdb环境上面
gcc 1.c -o 1
可执行文件1中没有包含了gdb调试的信息,这个程序不可以运行到gdb环境上面
2.gdb + 你要调试的程序文件名
gdb 01 //利用gdb工具调试当前目录下面名字叫做01的可执行文件
进入gdb的调试命令模式:
有一些需要记住的常用命令(命令可以使用首字母缩写):
l list 列举源代码
按回车就是重复执行上一次输入的命令
quit 退出gdb这个调试程序
r run 运行程序
让程序开始运行,运行到断点的位置或者程序结束
b break point 设置断点
gdb在运行这个程序的时候,可以设置断点,会在运行到断点位置的时候停下来
如:
b main 程序运行到main函数的时候停下来
b 18 程序运行到第18行的时候停下来
b fun 程序运行到fun函数的时候停下来
...
info b 查看所有设置的断点信息
delete + num 删除num表示的断点
停下来的时候,打印的一行语句是下一次将要执行的语句
p print 在运行的同时,可以打印出各种变量的值和地址
print n 打印变量n的值
print &n 打印变量n的地址
print fun 打印函数的地址
info line 3 查看第三行的信息
n :next 下一步,单步运行,执行上一次列举出来的代码
s :step into 下一步,单步运行,执行上一次列举出来的代码
n和s的区别?
n和s仅仅在遇到函数的时候有区别
n会把函数调用指令当成一条简单的指令,一次性执行完毕
s会跳转到函数的内部,一条一条运行函数的代码
以上就是我们需要记住的基本的指令
练习:自己写一个简单的代码,试一下gdb工具
2007

被折叠的 条评论
为什么被折叠?



