gcc,gdb调试
来源:互联网 发布:oracle数据库未打开 编辑:程序博客网 时间:2024/06/06 04:07
(01) 首先,输入gdb test
(02) 进入到gdb的调试界面之后,输入list,即可看到test.c源文件
(03) 设置断点,输入 b main
(04) 启动test程序,输入run
(05) 程序在main开始的地方设置了断点,所以程序在printf处断住
(06) 这时候,可以单步跟踪。s单步可以进入到函数,而n单步则越过函数
(07) 如果希望从断点处继续运行程序,输入c
(08) 希望程序运行到函数结束,输入finish
(09) 查看断点信息,输入 info break
(10) 如果希望查看堆栈信息,输入bt
(11) 希望查看内存,输入 x/64xh + 内存地址
(12) 删除断点,则输入delete break + 断点序号
(13) 希望查看函数局部变量的数值,可以输入print + 变量名
(14)希望修改内存值,直接输入 print + *地址 = 数值
(15) 希望实时打印变量的数值,可以输入display + 变量名
(16) 查看函数的汇编代码,输入 disassemble + 函数名
(17) 退出调试输入quit即可
gdb基本命令1
命令 描述
backtrace(或bt) 查看各级函数调用及参数
finish 连续运行到当前函数返回为止,然后停下来等待命令
frame(或f) 帧编号选择栈帧
info(或i)locals 查看当前栈帧局部变量的值
list(或l) 列出源代码,接着上次的位置往下列,每次列10行
list 行号 列出从第几行开始的源代码
list 函数名 列出某个函数的源代码
next(或n) 执行下一行语句
print(或p) 打印表达式的值,通过表达式可以修改变量的值或者调用函数
quit(或q) 退出gdb调试环境
set var 修改变量的值
start 开始执行程序,停在main函数第一行语句前面等待命令
step(或s) 执行下一行语句,如果有函数调用则进入到
break(或b) 行号 在某一行设置断点
break 函数名 在某个函数开头设置断点
break ... if ... 设置条件断点
continue(或c) 从当前位置开始连续运行程序
delete breakpoints 断点号删除断点
display 变量名 跟踪查看某个变量,每次停下来都显示它的值
disable breakpoints 断点号禁用断点
enable 断点号 启用断点
info(或i)breakpoints 查看当前设置了哪些断点
run(或r) 从头开始连续运行程序
undisplay 跟踪显示号 取消跟踪显示
(1)首先生成*.o文件,输入gcc -c test.c -o test.o
(2)利用ar命令生成静态库,输入ar rc libtest.a test.o
(1)首先输入gcc hello.c -o hello ./libtest.a
- GDB 调试常用命令 GCC
- gdb 调试 GCC 程序
- GCC GDB调试
- gcc,gdb调试
- GCC(G++) + GDB调试
- 用GDB调试 GCC 程序
- 用 GDB 调试 GCC 程序
- 用 gdb 调试 GCC 程序
- 用GDB调试 GCC 程序
- 用 gdb 调试 GCC 程序
- 用 gdb 调试 GCC 程序
- 用 gdb 调试 GCC 程序
- 用gdb 调试GCC 程序
- 用gdb调试GCC程序
- 用 gdb 调试 GCC 程序
- 用 gdb 调试 GCC 程序
- 用 gdb 调试 GCC 程序
- 用 gdb 调试 GCC 程序
- 计算两个日期相隔天数 思路:假设1998-10-10 2010-5-5 首先获取1889-10-10这个日期在这一年中还剩多少天 再次获取2010-5-5这个日子在这一年内已经过了
- debian 8 Jessie配置
- Qt中禁止调节窗口大小
- N的阶乘中末尾有几个0
- 非线性滤波:中值、双边滤波
- gcc,gdb调试
- 利用libsvm测试小的数据集成功,知道怎么传参数了
- word转PDF的方法
- 去除Activity上面的标题边框
- 软件工程师应该多写文章
- jquery ui选中多个元素
- 代理模式和java动态代理
- javascript自动判断网络连接状态并提醒用户
- easyUI中的表格使用