gdb查看内存区和寄存器i

一、用gdb查看内存

格式: x /nfu

说明

x 是 examine 的缩写

n表示要显示的内存单元的个数

f表示显示方式, 可取如下值

x 按十六进制格式显示变量。

d 按十进制格式显示变量。

u 按十进制格式显示无符号整型。

o 按八进制格式显示变量。

t 按二进制格式显示变量。

a 按十六进制格式显示变量。

i 指令地址格式

c 按字符格式显示变量。

f 按浮点数格式显示变量。

u表示一个地址单元的长度

b表示单字节,

h表示双字节,

w表示四字节,

g表示八字节

Format letters are o(octal), x(hex), d(decimal), u(unsigneddecimal),
t(binary), f(float), a(address), i(instruction), c(char) ands(string).
Size letters are b(byte), h(halfword), w(word), g(giant, 8bytes)

举例
x/3uh buf
表示从内存地址buf读取内容,
h表示以双字节为一个单位,
3表示三个单位,
u表示按十六进制显示

例子:

n是个局部变量

Breakpoint 1, main (argc=1,argv=0xbffff3a4) at calc.c:7
7       int n = atoi(argv[1]);
(gdb) print &n
$1 = (int *) 0xbffff2ec
(gdb) x 0xbffff2ec
0xbffff2ec:   0x00282ff4
(gdb) print * (int *) 0xbffff2ec
$2 = 2633716
(gdb) x /4xw 0xbffff2ec
0xbffff2ec:   0x00282ff4   0x080484e0   0x00000000   0xbffff378
(gdb) x /4dw 0xbffff2ec
0xbffff2ec:   2633716   134513888   0   -1073745032
(gdb)

二、gdb设置条件断点:

常用方法:先在想要设置条件断点的文件中随便设置一个断点,运行到该断点后,设置条件断点: break line if a ==value

时间: 2024-10-19 04:33:26

gdb查看内存区和寄存器i的相关文章

x/nfu-用gdb查看内存

用gdb查看内存 2007-12-08 12:43 用gdb查看内存 格式: x /nfu <addr> 说明x 是 examine 的缩写 n表示要显示的内存单元的个数 f表示显示方式, 可取如下值x 按十六进制格式显示变量.d 按十进制格式显示变量.u 按十进制格式显示无符号整型.o 按八进制格式显示变量.t 按二进制格式显示变量.a 按十六进制格式显示变量.i 指令地址格式c 按字符格式显示变量.f 按浮点数格式显示变量. u表示一个地址单元的长度b表示单字节,h表示双字节,w表示四字节

GDB 查看内存

查看内存 网址:http://blog.chinaunix.net/uid-26980210-id-3300895.html 1. 网址:http://blog.csdn.net/haoel/article/details/2879 2. 网址:http://blog.csdn.net/haoel/article/details/2880 3. 网址:http://blog.csdn.net/haoel/article/details/2881 4. 网址:http://blog.csdn.ne

gdb 查看内存 raw bytes 及变量类型

对以下代码进行编译: int main() { int a[] = {1,2,3}; return 0; } $ gcc -g arrays.c -o arrays $ gdb arrays(gdb) break main(gdb) run(gdb) next 1)可以使用 print 显示内容, ptype 显示类型 (gdb) print a $1 = {1, 2, 3} (gdb) ptype a type = int [3] 2)使用 x 进行内存查看 需要指定两个参数,第一:数据块的首

经典的GDB调试命令,包括查看变量,查看内存

经典的GDB调试命令,包括查看变量,查看内存 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据.print命令的格式是: print print / 是表达式,是你所调试的程序的语言的表达式(GDB可以调试多种编程语言),是输出的格式,比如,如果要把表达式按16进制的格式输出,那么就是/x. 一.表达式 print和许多GDB的命令一样,可以接受一个表达式,GDB会根据当前的程序运行的数据来计算这个表达式,既然是表达式,

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,如果地十是指令地址,那么格式

Linux程序宕掉后如何通过gdb查看出错信息

我们在编写服务端程序的时候,由于多线程并且环境复杂,程序可能在不确定条件的情况下宕掉,还不好重新,这是我们如何获取程序的出错信息,一种方法通过打日志,有时候一些错误日志也不能体现出来,这时就用到我们的core dump文件了. 通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等.可以理解为把程序工作的当前状态存储成一个文件.许多程序和操作系统出错时会自动生成一个core文件. 1 我们系统一般默认是吧core dump 关掉的,可以通过ulimit -c 查看如

jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令

公司内部同事分享的一篇文章 周末看到一个用jstack查看死锁的例子.昨天晚上总结了一下jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令.供大家参考 1.Jstack 1.1   jstack能得到运行java程序的java stack和native stack的信息.可以轻松得知当前线程的运行情况.如下图所示 注:这个和thread dump是同样的结果.但是thread dump是用kill -3 pid命令,还是服务器上面少用kill为妙 1.2   命名行格式

SQL SERVER 内存学习系列(二)-DMV查看内存信息

内存管理在SQL Server中有一个三级结构.底部是内存节点,这是最低级的分配器,用于SQL Server的内存.第二个层次是由内存Clerk组成,这是用来访问内存节点和缓存存储,缓存存储则用于缓存.最上层包含内存对象,它提供了一个比内存Clerk更小程度的粒度,内存对象允许直接.只有Clerk可以访问存储节点,来分配内存,所以每一个需要分配大量内存的组件都需要在SQL Server服务启动时创建它自己的内存Clerk. 以前版本的SQL Server需要SQL Server内存分配之外的VA

配置JVM内存 查看内存工具

一.配置JVM内存 1.配置JVM内存的参数有四个: -XmxJavaHeap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定: -XmsJavaHeap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值: -XmnJavaHeapYoung区大小,不熟悉最好保留默认值: -Xss每个线程的Stack大小,不熟悉最好保留默认值: 2.如何配置JVM内存分配: (1)当在命令提示符下启动并使用JVM时(只对当前运行的