GDB 调试方法与技巧刘鹏昊1 GDB 简介: 调试器(例如 GDB) 能让你观察一个程序在执行时的内部活动,或者程序出错时发生了什么 GDB 主要能为你做四件事情: ?运行你的程序,设置所有的能影响程序运行的东西?保证你的程序在指定的条件下停止?当你程序停止时,让你检查发生了什么?改变你的程序。那样你可以试着修正某个 bug 引起的问题, 然后继续查找另一个 bug 2 启动: 最通常的命令就是使用一个参数: $(m68k-linux-)gdb < 可执行文档名> 你还可以同时为你的执行文件指定一个 core 文件: $gdb < 可执行文件名> core 你也可以为你要执行的文件指定一个进程号: $gdb < 可执行文件名> < 进程号> 3 常用启动参数: -symbols < 文件名>(-s < 文件名>) 从<文件名>中读去符号-x < 文件名> 执行 gdb 命令,在<文件名>指定的文件中存放着一序列的 gdb 命令,就象一个批处理-directory(-d) < 路径> 指定路径。把<路径>加入到搜索源文件的路径中 4 常用启动参数: -quiet (-q) 安静模式,不输出介绍和版权信息-x < 文件名> 执行 gdb 命令,在<文件名>指定的文件中存放着一序列的 gdb 命令,就象一个批处理-directory(-d) < 路径> 指定路径。把<路径>加入到搜索源文件的路径中 5 结束: quit 直接退出 gdb detach 放弃连接 6 Shell 命令: shell <command string> 启动一个 shell 执行<command string> , 不用退出 GDB 就可以执行一个 shell 命令 make [make-args] 使用[make-args] 进行 make 相当于`shell make make-args' 7 GDB 命令?命令输入技巧: 可以把一个 gdb 命令缩写成开头几个字母,如果这没有二意性你可以直接回车来运行。如果有不止一个选择的话,你还可以使用 TAB 键让 gdb 给你完成接下来的键入,或向你显示可选择的命令?使用 help help [class] 显示某一类命令的列表$ help status Status inquiries. List mands: show -- mand for showing things set with "set" info -- mand for printing status 8 GDB 命令(使用 help) help [COMMAND] plete <ARGS > 列出所有以 ARGS 开头的命令‘ info ’ (可以缩写为‘i’)用来显示你程序的状态。比如,你可以使用 info args 列出你程序所接受的命令行参数。使用 info registers 列出寄存器的状态。‘ show ’与‘ info ’相反, ‘ show ’命令用来显示 gdb 自身的状态例如 show version 显示版本号, show copying 显示版权信息 9 GDB 下运行程序程序编译: 当你在 gdb 下运行程序时,你必须先为 gdb 准备好带有调试信息的可执行文档。为了高效的调试一个程序,你需要使用编译器来产生附带调试信息的可执行代码这些调试信息存储在目标文件中;描述了变量数据类型和函数声明,在源文件代码行和执行代码之间建立联系。为产生调试信息,当你使用编译器时指定'-g' 选项, 就可以为你的程序产生带有调试信息的可执行代码 10
gdb调试简易教程 来自淘豆网m.daumloan.com转载请标明出处.