gdb调试
程序员文章站
2022-05-14 09:14:50
恢复内容开始 1.gdb调试的是可执行文件,在gcc编译时加入 -g ,告诉gcc在编译时加入调试信息,这样gdb才能 调试这个被编译的文件 gcc -g tesst.c -o test 2. 命令格式:gdb 程序文件名 eg:gdb test file test gdb -q test 启动时不 ......
---恢复内容开始---
1.gdb调试的是可执行文件,在gcc编译时加入 -g ,告诉gcc在编译时加入调试信息,这样gdb才能
调试这个被编译的文件 gcc -g tesst.c -o test
2. 命令格式:gdb 程序文件名 eg:gdb test file test
gdb -q test 启动时不输出版权说明
quit 退出gdb,结束调试
list: 查看程序源代码,显示10行
list 5,10: 显示5到10行的代码
list test.c:5, 10:显示源文件5到10行的代码,在调试多个文件时使用
list get_sum: 显示get_sum函数周围的代码
list test,c get_sum: 显示源文件get_sum函数周围的代码,在调试多个文件时使用
reverse-search 字符串 用来从当前行向前查找第一个匹配的字符串
run 程序开始执行
help list/all 查看帮助信息
break 设置断点
break 7 在第七行设置断点
break get_sum 以函数名设置断点
break 行号或者函数名 if 条件 以条件表达式设置断点
watch 条件表达式 条件表达式发生改变时程序就会停下来
awatch 和watch类似,在表达式值发生改变或者表达式值被读取时,暂停
next 继续执行下一条语句 ,会把函数当作一条语句执行
step 继续执行下一条语句,会跟踪进入函数,一次一条的执行函数内的代码
nexti 单步执行一条机器指令 通常一条语句由多条机器指令构成,不进函数
stepi 单步执行一条机器指令, 跟踪进入函数
info breakpoints 查看当前设置的中断点
num 断点编号
type 类型
breakpoints 说明是中断
disp 指示中断点在生效一次后是否就失去作用,是为dis, 不是为keep
enb 表明当前中断点是否有效,是为y,不是为n
address 表示中断所处的内存地址
what 列出中孤单发生在哪个函数的第几行
stop only if result == 5050 表明这是一个条件中断
disable 断点编号 是使某个断点失效
enable 断点编号 使某个断点恢复
clear 删除程序中所有的断点
clear 行号: 删除此行的断点
clear 函数名 删除该函数的断点
clear 断点编号 删除指定编号的断点,若要一次删除多个断点,各个断点编号以空格隔开
print 一般用来打印变量或表达式的值
print 变量或表达式 打印变量或表达式当前的值
print 变量 = 值 对变量进行赋值
print 表达式@n 打印以表达式值开始的n个数
whatis 显示某个变量或表达式的数据类型
set 给变量赋值
set variable 变量 =值
continue 让程序继续执行下去
kill 用于结束当前程序的调试
---恢复内容结束---
1.gdb调试的是可执行文件,在gcc编译时加入 -g ,告诉gcc在编译时加入调试信息,这样gdb才能
调试这个被编译的文件 gcc -g tesst.c -o test
2. 命令格式:gdb 程序文件名 eg:gdb test file test
gdb -q test 启动时不输出版权说明
quit 退出gdb,结束调试
list: 查看程序源代码,显示10行
list 5,10: 显示5到10行的代码
list test.c:5, 10:显示源文件5到10行的代码,在调试多个文件时使用
list get_sum: 显示get_sum函数周围的代码
list test,c get_sum: 显示源文件get_sum函数周围的代码,在调试多个文件时使用
reverse-search 字符串 用来从当前行向前查找第一个匹配的字符串
run 程序开始执行
help list/all 查看帮助信息
break 设置断点
break 7 在第七行设置断点
break get_sum 以函数名设置断点
break 行号或者函数名 if 条件 以条件表达式设置断点
watch 条件表达式 条件表达式发生改变时程序就会停下来
awatch 和watch类似,在表达式值发生改变或者表达式值被读取时,暂停
next 继续执行下一条语句 ,会把函数当作一条语句执行
step 继续执行下一条语句,会跟踪进入函数,一次一条的执行函数内的代码
nexti 单步执行一条机器指令 通常一条语句由多条机器指令构成,不进函数
stepi 单步执行一条机器指令, 跟踪进入函数
info breakpoints 查看当前设置的中断点
num 断点编号
type 类型
breakpoints 说明是中断
disp 指示中断点在生效一次后是否就失去作用,是为dis, 不是为keep
enb 表明当前中断点是否有效,是为y,不是为n
address 表示中断所处的内存地址
what 列出中孤单发生在哪个函数的第几行
stop only if result == 5050 表明这是一个条件中断
disable 断点编号 是使某个断点失效
enable 断点编号 使某个断点恢复
clear 删除程序中所有的断点
clear 行号: 删除此行的断点
clear 函数名 删除该函数的断点
clear 断点编号 删除指定编号的断点,若要一次删除多个断点,各个断点编号以空格隔开
print 一般用来打印变量或表达式的值
print 变量或表达式 打印变量或表达式当前的值
print 变量 = 值 对变量进行赋值
print 表达式@n 打印以表达式值开始的n个数
whatis 显示某个变量或表达式的数据类型
set 给变量赋值
set variable 变量 =值
continue 让程序继续执行下去
kill 用于结束当前程序的调试
赞 (0)
打赏
微信扫一扫
相关文章:
-
-
1.1 struct to json 准备 很简单,使用encoding包可以互相转换,没什么好说的,但是有几点注意: 1.结构体内需要序列化的字段... [阅读全文]
-
一、1、color: 文本颜色 预定义文本颜色值,如red,blue等 十六进制的颜色值 #fff白色 建议常用的表示方法 RGB代码,如红色可以表... [阅读全文]
-
element的table中使用 <template slot-scope="scope"> </templa... [阅读全文]
-
C 内存管理模块的编写 C语言手动管理内存很困难,有时候很难发现内存泄漏,这两天看了一下里面有写了一个简单的内存管理模块,发现挺精巧,可以有效检测内... [阅读全文]
-
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
上一篇: 跟一姐妹在一起姐妹边开车边说想要找个男朋友我问他想找多大的她说
下一篇: 单身的妹子都是人才
发表评论