zoukankan      html  css  js  c++  java
  • gdb的使用(转)

    gdb使用

    转自清华大学操作系统实验指导书

    gdb 是功能强大的调试程序,可完成如下的调试任务:

    • 设置断点
    • 监视程序变量的值
    • 程序的单步(step in/step over)执行
    • 显示/修改变量的值
    • 显示/修改寄存器
    • 查看程序的堆栈情况
    • 远程调试
    • 调试线程

    在可以使用 gdb 调试程序之前,必须使用 -g 或 –ggdb编译选项编译源文件。运行 gdb 调试程序时通常使用如下的命令:

    gdb progname
    gdb -x file //从文件中读取gdb命令
    gdb -q //quiet 不要打印和介绍版权信息
    gdb -tui //显示代码窗口

    在 gdb 提示符处键入help,将列出命令的分类,主要的分类有:

    • aliases:命令别名
    • breakpoints:断点定义;
    • data:数据查看;
    • files:指定并查看文件;
    • internals:维护命令;
    • running:程序执行;
    • stack:调用栈查看;
    • status:状态查看;
    • tracepoints:跟踪程序执行。

    键入 help 后跟命令的分类名,可获得该类命令的详细清单。gdb的常用命令如下表所示。

    表 gdb 的常用命令

    break FILENAME:NUM 在特定源文件特定行上设置断点
    clear FILENAME:NUM 删除设置在特定源文件特定行上的断点
    run 运行调试程序
    step 单步执行调试程序,不会直接执行函数
    next 单步执行调试程序,会直接执行函数
    backtrace 显示所有的调用栈帧。该命令可用来显示函数的调用顺序
    where continue 继续执行正在调试的程序
    display EXPR 每次程序停止后显示表达式的值,表达式由程序定义的变量组成
    file FILENAME 装载指定的可执行文件进行调试
    help CMDNAME 显示指定调试命令的帮助信息
    info break 显示当前断点列表,包括到达断点处的次数等
    info files 显示被调试文件的详细信息
    info func 显示被调试程序的所有函数名称
    info prog 显示被调试程序的执行状态
    info local 显示被调试程序当前函数中的局部变量信息
    info var 显示被调试程序的所有全局和静态变量名称
    kill 终止正在被调试的程序
    list 显示被调试程序的源代码
    quit 退出 gdb
    info win 显示窗口的大小
    layout next 切换到下一个布局模式
    layout prev 切换到上一个布局模式
    layout src 只显示源代码
    layout asm 只显示汇编代码
    layout split 显示源代码和汇编代码
    layout regs 增加寄存器内容显示
    focus cmd/src/asm/regs/next/prev 切换当前窗口
    refresh 刷新所有窗口
    tui reg next 显示下一组寄存器
    tui reg system 显示系统寄存器
    update 更新源代码窗口和当前执行点
    winheight name +/- line 调整name窗口的高度
    tabset nchar 设置tab为nchar个字符
  • 相关阅读:
    论抱怨
    GitHub开源的10个超棒后台管理面板
    RESTful API 最佳实践
    理解RESTful架构
    redis 数据类型详解 以及 redis适用场景场合
    redis的应用场景 为什么用redis
    composer install 出现的问题
    什么是反向代理
    电脑 DNS纪要
    ajax请求处理概要
  • 原文地址:https://www.cnblogs.com/xuwangzihao/p/6607473.html
Copyright © 2011-2022 走看看