zoukankan      html  css  js  c++  java
  • gdb快速学习

    入门案例:

    用gcc/g++编译:

    gcc -g -o test test.c

    g++ -g -o test test.cpp

    其中-g是调试模式 -o是对程序进行优化连接等

    终端输入gdb进入gdb调试 再 file test

    如图:

     

     注意运行是./你的c程序名

    不加./可能不认为是当前目录

     然后可以gdb

    file hhh //调试你文件

    run 就是运行 输入q或quit退出

    这就是一个简单的gdb入门案例

    熟悉了之后直接gdb hhh 就可以了

    方便的命令: gdb hhh -tui

    其实gdb -tui hhh 也行

     会可视化显示你的代码  很方便

    断点的设置:

    b 2 在第2行设置断点

    cl 2  在第2行取消断点

    常用的还有b/cl  函数名 注意是在函数入口处

    d:删除所有断点

    d 2 删除编号2的断点

    cl 2  删除第2行断点

    其他命令:

    c:继续运行(中断后用) 直到下一个断点

    u 9:程序运行到第九行然后暂停

    u fun :程序运行到fun()函数的入口暂停

    disp x + 1:每次自动输出x+1的值 (x :变量)

    dis disp 禁用所有disp

    en disp 启用所有disp     disp:display

    回车:执行上条语句

    n:单步运行 遇到函数直接跳过函数 计算出值

    s:单步运行 和n类似 但是会进入函数内部

    p  x:输出x的值 (p:print)

    call :执行一段代码 有返回值输出至屏幕

    i (info): 好用 显示信息

    i b :显示 所有断点

    i lo : x显示局部变量

    i disp :显示所有disp

    d disp:删除所有disp

    bt :查看堆栈

    高级命令:

    ig ignore 3 7 :让编号为3的断点前7次到达时都不停下来 第8次时停下来

     cond condition 给断点加一个条件

    cond  2 i > 3 : 2号断点只有在i>3才起作用

    comm commands 在几号断点后停下来执行一段gdb命令 如comm 2 p x 在2号断点停下来执行p x 打印变量x的值(用得少)

    wa watch 

    wa i 当i的值发生改变时停下来

    aw awatch    aw i:当变量i被读写时都停下来

    rw rwatch      rw i:当变量i被读时停下来

    还有一个

    b 7 if i ==9

    在第七行设置断点 在i=9时停下来

    其他技巧:

    查看数组元素:

    p *arr@10 查看arr数组的前10位(arr[0]-arr[9])

    p arr[3]@5 查看arr[3]及其后4位 共5位

  • 相关阅读:
    【webpack系列】从零搭建 webpack4+react 脚手架(一)
    js常见的面试题
    java中读取资源文件的方法
    java servlet的域对象
    java 静态资源访问详解
    java servlet简述
    mysql免解压版的配置
    java网络编程
    java单例设计模式
    java多线程及线程安全详解
  • 原文地址:https://www.cnblogs.com/ranzhong/p/15801294.html
Copyright © 2011-2022 走看看