zoukankan      html  css  js  c++  java
  • gdb调试关键点记录

    1.使用gcc时,需要使用gcc -g选项

    2.如果想要把生成的可执行文件的调试信息去掉,可以使用strip命令.

    3.调试程序时,最好把编译器的优化给关掉

    gdb调试程序的三种方式:

    1.gdb filename

    2.gdb attach pid # 分离可以用detach

    3.gdb filename corename  

    gdb常用的命令:

    命令(简写) 含义
    help command 救命啊,命令
    list(l) 列出附近的代码,l -表示前面的.
    break(b) 打断点

    b funcname

    b LineNo

    b filename:LineNo

    run(r) 运行
    continue(c) 运行到下一个断点处
    print(p)

    打印, 可以查看错误p strerror(errorno)

    也可以用来修改变量,比如p a = 3.

    也可以计算表达式, p 1+2

       
    ptype 打印类型,也可以打印结构体内容
    info thread

    打印线程的信息

    切换用thread + 线程序号

    info args 打印参数信息
    backtrace(bt) 调用堆栈,可以使用 f 堆栈号 来切换
    frame(f) 切换到某个堆栈
       
    info break(info b) 查看断点信息
    enable  

    +断点编号(可以多个):表示对某个起作用; 

    不加表示对所有起作用

    disable
    delete
       
    next(n) 单步步过
    step(s) 单步步入
    util util LineNo 执行到某行
    jump(j) j LineNo或者函数地址 跳转到某处
    finish 执行完当前层函数,返回到上一层
    return 当前层函数后面的直接不执行,返回到上一层.可以带返回值,返回值会赋给函数调用方.
       
    disassemble 

    反汇编, set disassembly-flavor intel 可以设置为intel风格,就是VS下的那种风格

    tb 临时断点,只第一次起作用
    set args 设置参数
    watch

    watch监视变量,当变量发生变化时就会自动中断,很神奇是不是~

     删除watch的方式:  先info watch,然后删除对应的编号.

    display

    显示你添加进去的变量,每一次中断的位置都会显示

       
    新战场:https://blog.csdn.net/Stephen___Qin
  • 相关阅读:
    CentOS7 安装 JIRA 7.2.x 教程:下载、安装、汉化、破解
    安装 GraphicsMagick
    CentOS 7 yum 安装 Nginx
    CentOS 安装 OpenResty
    软件工程技术面试个人指南
    五线谱
    中央C-高低音谱号里的中央C和其它音节
    使用管道copy同一文件至多个目录下
    refusing to merge unrelated histories
    Viewing A Specific Commit_12
  • 原文地址:https://www.cnblogs.com/Stephen-Qin/p/12764810.html
Copyright © 2011-2022 走看看