调试时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方向相反

GDB基本调试的更多相关文章

  1. gdb可以调试python的pdb么

    1.如题: gdb可以调试python的pdb么? 答案:可以,实验如下. 2.实验: 生成一个a.py代码文件,代码如下: import pdb a = 1 print "111" ...

  2. Window平台Grmon下如何使用gdb进行调试

    Window平台Grmon下如何使用gdb进行调试 1输入cmd命令,打开其窗口,进入你要执行的文件目录下 2.连接开发板,输入grmon –altjtag –u 3.连上后,输入gdb命令 4.再输 ...

  3. GDB代码调试与使用

    GDB代码调试与使用 Linux下GDB调试代码 源代码 编译生成执行文件 gcc -g test.c -o test 使用GDB调试 启动GDB:gdb test 从第一行列出源代码:list 直接 ...

  4. gdb 多线程调试

    gdb 多线程调试 http://hi.baidu.com/hcq11/blog/item/9f5bfc6e696209d680cb4a25.html  http://hi.baidu.com/lit ...

  5. GDB 进行调试 使用心得

    GDB 进行调试 使用心得 转 1: 对于在应用程序中加入参数进行调试的方法:   直接用 gdb app -p1 -p2 这样进行调试是不行的.   需要像以下这样使用:    #gdb app   ...

  6. GDB+GDBServer调试Linux应用程序

    参考:http://blog.csdn.net/shanghaiqianlun/article/details/7820401 一.gdb+gdbserver总体介绍 远程调试环境由宿主机GDB和目标 ...

  7. GDB 多进程调试

    启动: $gdb <file>  || $gdb 然后(gdb)file <file> 运行: (gdb)run <该程序本身的命令行参数> 查看代码: (gdb) ...

  8. DM368 arm板GDB远程调试

    参考: http://www.erchashu.com/wiki/eclipse-cdt-gdb-arm-app-cross-debug 远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通 ...

  9. gdb 远程调试android进程 -转

    什么是gdb 它是gnu组织开发的一个强大的unix程序调试工具,我们可以用它来调试Android上的C.C++代码. 它主要可以做4件事情: 随心所欲地启动你的程序. 设置断点,程序执行到断点处会停 ...

  10. Gdb远程调试Linux内核遇到的Bug

    知识共享许可协议本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/gdb-bug 本博客同步在http://www.cn ...

随机推荐

  1. ocp 1Z0-042 121-178题解析

    121. You want to create a new optimized database for your transactional production environment to be ...

  2. JSF 2 multiple select listbox example

    In JSF, <h:selectManyListbox /> tag is used to render a multiple select listbox – HTML select ...

  3. hud 1166 敌兵布阵

    http://acm.hdu.edu.cn/showproblem.php?pid=1166 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  4. [iOS基础控件 - 6.9.1] 聊天界面Demo 代码

    框架:   所有代码文件:   Model: // // Message.h // QQChatDemo // // Created by hellovoidworld on 14/12/8. // ...

  5. IE中的文档兼容性

    文档兼容性可定义 Internet Explorer 呈现网页的方式, 具体可以参考 https://msdn.microsoft.com/zh-cn/library/cc288325(v=vs.85 ...

  6. hdu4614Vases and Flowers(线段树,段设置,更新时范围的右边值为变量)

    Problem Description Alice is so popular that she can receive many flowers everyday. She has N vases ...

  7. poj3041

    Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12162   Accepted: 6620 Descri ...

  8. Row_Number()over(order by....) as

    出自:http://www.2cto.com/database/201307/227103.html Sql Server Row_Number()学习   Row_Number():   row_n ...

  9. OOP设计模式[JAVA]——03职责链模式

    职责链模式 Responsibility of Chain 在职责链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求 ...

  10. PostgreSQL的 initdb 源代码分析之十三

    继续分析: /* Bootstrap template1 */ bootstrap_template1(); 展开: 我这里读入的文件是:/home/pgsql/project/share/postg ...