zoukankan      html  css  js  c++  java
  • GDB基本调试

    调试时gcc -g -Wall -o Hello Hello.c

    gdb Hello -tui

    -g:       生成调试信息

    -Wall:     编译器警告信息

    -W:      警告信息

    在调用GDB时,命令行指定-tui,或在非TUI模式时使用Ctrl+X+A。

    TUI模式:上半部分源码,下半部分输入GDB命令

    break main:        在main函数第一行可执行代码设置断点 

    break n:         在第n行设置断点

    break 30 if condition:  条件断点,符合condition才会暂停

    break +offset/-offset:  在当前选中栈正在执行的代码行之前或之后offset行设置断点

    break *address:      在虚拟内存地址设置断点(比如找不到源代码或共享库)

    clear n:          删除n行断点

    clear list_insert:       删除函数的所有断点

    clear list.c:list_delet:  删除文件:函数的所有断点

    delete 1 3 4:      删除断点1 3 4

    delete 1-4:       删除断点1到4

    disable n:         禁用断点

    enable 1 5:       启用断点1 5

    enable once 3:      临时启用断点3    

    info break:         列出所有断点

    run:           跑程序

    run 12 5 6:        向程序传递参数12、5、6

    next:           行进到下一行

    continue:         恢复执行

    tbreak:          创建一个有效次数为1的断点

    until:           走出循环体然后停止

    finish:           跑完程序

    print i:          输出 i

    watch z:        监视 z

    watch (z>5):       查找程序执行期间z值大于5的第一个位置

    栈帧(stack frame)操作:

    帧栈是与调用关联的运行时的信息存储在成为栈帧的内存区域,

    帧中包含函数局部变量的值,函数形参,以及调用该函数位置的记录。

    每次发生函数调用创建一个新帧,函数退出时帧弹出栈,释放。

    backtrace:       显示整个栈,即当前所有帧集合

    frame n:        当前执行函数的帧编号为0,夫帧为1,以此类推

    up:           带到调用栈下一个夫帧

    down:         与up方向相反

  • 相关阅读:
    Android 节日短信送祝福(UI篇:3-选择短信与发送短信的Activity的实现)
    Android 节日短信送祝福(功能篇:2-短信历史记录Fragment的编写)
    Android 节日短信送祝福(功能篇:1-数据库操作类与自定义ContentProvider)
    Android AIDL 小结
    Android 异步更新UI-线程池-Future-Handler实例分析
    Android 利用线程运行栈StackTraceElement设计Android日志模块
    Android OkHttp网络连接封装工具类
    Android OKHttp源码解析
    Android开发人员不得不收集的代码(持续更新中)
    Android 为开发者准备的最佳 Android 函数库(2016 年版)
  • 原文地址:https://www.cnblogs.com/Juntaran/p/5435170.html
Copyright © 2011-2022 走看看