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方向相反
GDB基本调试的更多相关文章
- gdb可以调试python的pdb么
1.如题: gdb可以调试python的pdb么? 答案:可以,实验如下. 2.实验: 生成一个a.py代码文件,代码如下: import pdb a = 1 print "111" ...
- Window平台Grmon下如何使用gdb进行调试
Window平台Grmon下如何使用gdb进行调试 1输入cmd命令,打开其窗口,进入你要执行的文件目录下 2.连接开发板,输入grmon –altjtag –u 3.连上后,输入gdb命令 4.再输 ...
- GDB代码调试与使用
GDB代码调试与使用 Linux下GDB调试代码 源代码 编译生成执行文件 gcc -g test.c -o test 使用GDB调试 启动GDB:gdb test 从第一行列出源代码:list 直接 ...
- gdb 多线程调试
gdb 多线程调试 http://hi.baidu.com/hcq11/blog/item/9f5bfc6e696209d680cb4a25.html http://hi.baidu.com/lit ...
- GDB 进行调试 使用心得
GDB 进行调试 使用心得 转 1: 对于在应用程序中加入参数进行调试的方法: 直接用 gdb app -p1 -p2 这样进行调试是不行的. 需要像以下这样使用: #gdb app ...
- GDB+GDBServer调试Linux应用程序
参考:http://blog.csdn.net/shanghaiqianlun/article/details/7820401 一.gdb+gdbserver总体介绍 远程调试环境由宿主机GDB和目标 ...
- GDB 多进程调试
启动: $gdb <file> || $gdb 然后(gdb)file <file> 运行: (gdb)run <该程序本身的命令行参数> 查看代码: (gdb) ...
- DM368 arm板GDB远程调试
参考: http://www.erchashu.com/wiki/eclipse-cdt-gdb-arm-app-cross-debug 远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通 ...
- gdb 远程调试android进程 -转
什么是gdb 它是gnu组织开发的一个强大的unix程序调试工具,我们可以用它来调试Android上的C.C++代码. 它主要可以做4件事情: 随心所欲地启动你的程序. 设置断点,程序执行到断点处会停 ...
- Gdb远程调试Linux内核遇到的Bug
知识共享许可协议本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/gdb-bug 本博客同步在http://www.cn ...
随机推荐
- 【现代程序设计】【homework-05】
这次作业的运行效果图: 新建了20个客户端线程,服务器相应开了20个线程接收客户端数据,每一秒输出每一轮的结果 这次作业用c#完成 利用 Socket 类实现了局域网中的客户端和服务器之间的通信 主要 ...
- 无奈卸载Clover 转投TotalCommand
Clover 是个好的多Tab 资源管理器,但在Win8下总是崩溃啊,让人很崩溃. 无奈投奔TotalCommand吧,就是梯度有些高. 当然不习惯,也可以使用下 XYPlorer
- 利用hashtable和time函数加速Lisp程序
程序功能是从一个英文文本中得到单词表,再得到押韵词表.即输出可能这样开始: a ameoeba alba samba marimba... 这样结束: ...megahertz gigahertz j ...
- Codeforces Round #352 (Div. 2) D. Robin Hood (二分答案)
题目链接:http://codeforces.com/contest/672/problem/D 有n个人,k个操作,每个人有a[i]个物品,每次操作把最富的人那里拿一个物品给最穷的人,问你最后贫富差 ...
- quartz源码解析(一)
本文的起因源于一次quartz的异常,在win2003正常运行的程序放在linux环境就抛出异常了,虽然找出异常没花我多长时间,不过由此加深了对quzrtz的了解:古人说,三折肱,为良医,说明经验对于 ...
- Protobuf一键生成代码bat文件
最近在摆弄Unity的Socket,需要用到Protobuf,一般都会有多个协议文件,所以研究了下bat的批处理,下面给出批处理文件代码: @echo off ::协议文件路径, 最后不要跟“\”符号 ...
- C#学习笔记(十三):I/O操作
C#的IO操作主要是针对文件夹和文件的读取和写入操作,下面我们来学习一下相关操作的类. 获取文件信息 Directory和DirectoryInfo 两个类的功能基本相同,区别如下: 前者继承Syst ...
- C#文件后缀名详解
C#文件后缀名详解 .sln:解决方案文件,为解决方案资源管理器提供显示管理文件的图形接口所需的信息. .csproj:项目文件,创建应用程序所需的引用.数据连接.文件夹和文件的信息. .aspx:W ...
- java.util.Arrays的使用
在Java.util包中有一个工具类Arrays类,封装了一些操作数组的方法.简单使用如下: package com.arrays.test; import java.util.Arrays; pub ...
- 通过lldb远程调试iOS App
苹果从Xcode5开始弃用了gcc及gdb, 只能使用llvm用lldb. 在越狱机上虽然仍然可以使用gdb进行调试,但lldb是趋势.下面就介绍一种通过Wifi或者USB,在Mac上使用lldb对i ...