0x05_gdb基础
gdb调试工具:前提是有源码,对文件进行编译时增加-g参数。加了这个参数后的编译文件会大一些,是因为增加了gdb的调试内容。
使用时:gdb a.out
。
基本命令: list n: 列出第n行源码 break n: 在第n行设置断点 run: 运行程序直到断点 next: 下一条指令,会越过函数 step: 下一条指令,会进入函数 print i: 查看变量i的值 continue:继续执行断点后续指令到下一个断点 finish: 结束当前函数调用 quit: 退出当前调试
run: 使用run查找段错误出现的位置,会在错误位置停止。 set args args1 args2 ... : 设置main函数命令行参数(在start、run之前) run args1 args2 ... : 设置main函数命令行参数 info breaks: 查看断点信息表 break n if i = 5:设置条件断点 ptype i: 查看变量类型 backtrace: 查看函数的调用的栈帧(正存活着的栈帧) frame n: 根据栈帧编号,切换栈帧 display i: 设置跟踪变量,一直打印变量值 undisplay idx: 取消跟踪变量,使用跟踪变量的编号
使用list时发现报错:没有符号表被读取,是由于编译时没有加-g参数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY