• C语言-gdb调试工具详解


    回车 重复上一次命令

    产生可调试的可执行文件:
    gcc -g main.c -o main, 必须加上-g选线, 表示在可执行文件中加入源文件信息, 但并不是将源文件嵌入可执行文件, 所以在调试时必须保证gdb能够找到源文件

    进入调试:
    gdb fname, 进入fname可执行文件的调试环境

    查看源文件代码:
    l/list n/func/fname:n/fname:func

    查看详细信息:
    i/info 查看一个断点|变量等的详细信息

    调试步骤:
    start 开始时使用, 开始运行程序, 停在main函数第一行语句前面等待命令
    r/run 开始时使用, 从头开始连续运行程序, 连续执行程序, 直到遇到断点
    n/next 下一行, 但是不进入函数调用
    s/step 下一行, 并且进入函数调用, 即如果有函数调用则进入到函数中
    c/continue 继续执行程序, 直到下个断点
    fini/finish 继续运行至当前栈帧/函数完成
    bt/backtrace 打印运行时堆栈

    变量信息管理:
    p/print 变量名, 打印变量的值
    display 变量名, 使得程序每次停下来都会显示变量的值
    x/nbx 变量名, 查看从变量名开始的n个字节, 例x/7bx input 表示查看从变量input开始的7个内存单元的内容
    set var 变量名=变量值, 如 set $p = *($esp)

    查看函数堆栈:
    bt/backtrace 查看函数调用的信息
    f/frame n, n为栈的层次, 然后可以用其他命令(info)查看此级别的变量信息, 可以使用bt先列出栈中的函数调用信息, 然后使用f n在栈函数之间进行切换

    断点管理:
        b/break n/func/fname:n/fname:func if 条件, 设置断点-可以用/不用if条件
        i/info breakpoints, 查看设置的断点信息
        delete breakpoints n/func..., 删除断点
        enable breakpoints n/func..., 使断点生效
        disable breakpoints n/func..., 使断点失效

    退出gdb:
        q/quit

    参考:

      http://blog.csdn.net/nixiangxiren/article/details/6935052

      http://www.cnblogs.com/kzloser/archive/2012/09/21/2697185.html

  • 相关阅读:
    vue $refs的用法
    .net 合并GridView中某列相同信息的行(方法1)
    vue 将编号转换成名字显示
    base64转图片的工具网站
    html +css + js 实现自定义模态框
    asp 弹窗效果
    vue 关于$emit的用法
    Git 合并分支
    asp 学习网站
    Tomcat部署方法
  • 原文地址:https://www.cnblogs.com/JohnABC/p/4602056.html
Copyright © 2020-2023  润新知