调试利器GDB(下)

调试利器GDB(下)

2.1数据断点

GDB中支持数据断点的设置,watch命令用于监视变量是否被改变(本质为硬件断点)
用法:watch var_name

2.2 GDB中的内存查看

GDB中可以查看任意内存区域中的数据,命令格式:x /Nuf expression
N -需要打印的单元数
u -每个单元的大小
f -打印数据的格式
其数据格式如下:

2.3 GDB中的打印格式


实例:判断系统大小端

2.4函数调用栈查看

backtrace,查看函数调用的顺序(函数调用栈的信息)
frame N 切换到栈编号为N的上下文
info frame 查看当前函数调用栈的栈帧信息
栈帧信息示意图:

info命令说明:

2.5 GDB的其他技巧

原文地址:http://blog.51cto.com/11134889/2083653

时间: 2024-10-02 03:44:02

调试利器GDB(下)的相关文章

linux-c/c++调试利器gdb、ddd小试

linux-c/c++调试利器gdb.ddd小试 原文链接: http://deepfuture.iteye.com/blog/749148 博客分类: C++/C/lisp CC++C#LinuxUbuntu 一.gdb,在shell窗口调试 main.c内容: main.c #include <stdio.h> int main() { int y=0; for (int i=0;i<10;i++){ y+=i; } return 0; } 深未来技术原创文章,如转载,请注明来源ht

调试利器GDB(上)

调试利器GDB(上) 1.1 GDB初识 1.1.1什么是GDB? GDB是GNU项目中的调试器(gnu debuger),能够跟尊程序的执行,也能恢复程序崩溃前的状态 1.1.2为什么需要GDB? 软件产品的研发过程必然伴随bug,调试时软件开发中不可或缺的技术(调试工具很重要) 1.1.3 DBG与binutils 1.2 GDB的常规使用 1.自定义程序得到启动方式(指定影响程序运行的参数)2.设置条件断点(在满足条件时程序暂停执行)3.回溯检查导致程序异常结束的原因(core dump)

linux 调试利器gdb, strace, pstack, pstree, lsof

1)如何使用strace+pstack利器分析程序性能?http://www.cnblogs.com/bangerlee/archive/2012/04/30/2476190.html此文有详细介绍怎么用strace和pstack 2)Linux下多线程查看工具(pstree.ps.pstack)?http://blog.csdn.net/yfkiss/article/details/6729364 3)使用strace,lstrace,truss来跟踪程序的运行过程http://hi.baid

[iOS逆向实战 之十]动态调试利器---gdb基础篇

个人原创,转帖请注明来源:cnblogs.com/jailbreaker 一.调试平台搭建 1.GNU Debugger.首先安装ios下的gdb调试器,添加源:cydia.radare.org .搜索 GNU Debugger,安装之.(有些源的GDB好像不能用,这个测试没问题) 2.openSSH.这个应该都会装,没装过的参考,http://www.cnblogs.com/jailbreaker/p/4142609.html 3.adv-cmds.添加源:apt.saurik.com(这个应

[转] linux下的c/c++调试器gdb

http://www.cnblogs.com/xd502djj/archive/2012/08/30/2663960.html linux下的c/c++调试器gdb gdbLinux 包含了一个叫 gdb 的 GNU 调试程序. gdb 是一个用来调试 C 和 C++ 程序的强力调试器. 它使你能在程序运行时观察程序的内部结构和内存的使用情况. 以下是 gdb 所提供的一些功能: * 设置断点:* 监视程序变量的值:* 程序的单步执行:* 修改变量的值.       gdb支持下列语言C, C+

Javascript 调试利器 Firebug使用详解

Javascript 调试利器 Firebug使用详解 有时候,为了更清楚方便的查看输出信息,我们可能需要将一些调试信息进行分组输出,那么可以使用console.group来对信息进行分组,在组信息输出完成后用console.groupEnd结束分组. 我们测试一下把刚才的4个输出作为一个分组输出,修改代码为: 复制代码 代码如下: console.group('开始分组:'); console.debug('This is console.debug!'); console.info('Thi

应用调试(二)GDB

title: 应用调试(二)GDBdate: 2019/1/17 21:00:10 toc: true 应用调试(二)GDB gdb下载工具安装交叉工具链设置GDB介绍编译GDBtarget/host/build编译主机GDB编译单板GDBserver调试程序CoreDumpGDB命令杂项附录源码 gdb下载 官网 这里我下载了gdb-7.6.tar.gz编译成功,下载了8.x的需要c++11,后来没有试了 里面的".sig"为文件名的分离签名文件,用来校验下载资源的完整性,.xz为另

前端调试利器---nproxy

前言:习惯了在windows环境中使用Fiddler的童鞋们,是不是感觉它的网络重定向功能很酷,Fiddler能按照你设置的规制捕获网络请求,再指向本地文件,如拦截你的js文件到本地,就能很快的调试线上环境(如后台环境,测试环境,预上线环境等).但是Fiddler的使用对于初学者来说还是稍有困难的,界面功能很多,导致新手无从下手.(我当初就是这样的),并且Fiddler虽然有Mac版本,但是问题很多,我试了好几次都不行. 正文:今天给大家介绍一款新的神器,nproxy.它能通吃windows,l

GDB下查看内存命令(x命令)

http://blog.csdn.net/allenlinrui/article/details/5964046 可以使用examine命令(简写是x)来查看内存地址中的值.x命令的语法如下所示: x/<n/f/u> <addr> n.f.u是可选的参数. n是一个正整数,表示需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义. f 表示显示的格式,参见下面.如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式