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,如果地十是指令地址,那么格式可以是i。
u 表示从当前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes。u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字 节,g表示八字节。当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来。
<addr>表示一个内存地址。
注意:严格区分n和u的关系,n表示单元个数,u表示每个单元的大小。
n/f/u三个参数可以一起使用。例如:
命令:x/3uh 0x54320 表示,从内存地址0x54320读取内容,h表示以双字节为一个单位,3表示输出三个单位,u表示按十六进制显示。
输出格式
一般来说,GDB会根据变量的类型输出变量的值。但你也可以自定义GDB的输出的格式。例如,你想输出一个整数的十六进制,或是二进制来查看这个整型变量的中的位的情况。要做到这样,你可以使用GDB的数据显示格式:
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十六进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
c 按字符格式显示变量。
f 按浮点数格式显示变量。
(gdb) help x
Examine memory: x/FMT ADDRESS.
ADDRESS is an expression for the memory address to examine.
FMT is a repeat count followed by a format letter and a size letter.
Format letters are o(octal), x(hex), d(decimal), u(unsigned decimal),
t(binary), f(float), a(address), i(instruction), c(char) and s(string).
Size letters are b(byte), h(halfword), w(word), g(giant, 8 bytes).
The specified number of objects of the specified size are printed
according to the format.
Defaults for format and size letters are those previously used.
Default count is 1. Default address is following last thing printed
with this command or "print".
(gdb) p f1
$4 = 8.25
(gdb) p f2
$5 = 125.5
(gdb) x/x &f1
0xbffff380: 0x41040000
(gdb) x/xw &f1
0xbffff380: 0x41040000
(gdb) x/xw &f2
0xbffff384: 0x42fb0000
(gdb) x/2xw &f1
0xbffff380: 0x41040000 0x42fb0000
(gdb) x/4xw &f1
0xbffff380: 0x41040000 0x42fb0000 0xbffff408 0x00bcba66
(gdb) x/tw &f1
0xbffff380: 01000001000001000000000000000000
(gdb) x/2tw &f1
0xbffff380: 01000001000001000000000000000000 01000010111110110000000000000000
(gdb) p record
$10 = {12, 76, 48, 62, 94, 17, 32, 37, 52, 69}
(gdb) p &record
$11 = (int (*)[10]) 0x8049740
(gdb) x/4uw 0x8049740
0x8049740 <record>: 12 76 48 62
(gdb) x/6ow 0x8049740
0x8049740 <record>: 014 0114 060 076
0x8049750 <record+16>: 0136 021
GDB下查看内存命令(x命令)的更多相关文章
- linux下查看内存的命令
		
top能显示系统内存.我们常用的Linux下查看内容的专用工具是free命令. 下面是对内存查看free命令输出内容的解释: total:总计物理内存的大小. used:已使用多大. free:可用有 ...
 - (笔记)Linux下查看CPU使用率的命令
		
1.top 使用权限:所有使用者 使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 说明:即时显示process的动态 d :改变显示的更新速度,或 ...
 - linux下查看进程(ps命令)
		
转自:http://www.jb51.net/LINUXjishu/151851.html Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命 ...
 - Linux下查看文件内容的命令
		
查看文件内容的命令: cat 由第一行开始显示内容,并将所有内容输出 tac 从最后一行倒序显示内容,并将所有内容输出 more 根据窗口大小,一页一页的现实文件内容 less ...
 - 萌新笔记——linux下查看内存的使用情况
		
windows上有各种软件可以进行"一键加速"之类的操作,释放掉一些内存(虽然我暂时不知道是怎么办到的,有待后续学习).而任务管理器也可以很方便地查看各进程使用的内存情况,如下图: ...
 - Linux下查看内存使用情况方法总结
		
Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...
 - linux下查看内存的使用情况
		
windows上有各种软件可以进行“一键加速”之类的操作,释放掉一些内存(虽然我暂时不知道是怎么办到的,有待后续学习).而任务管理器也可以很方便地查看各进程使用的内存情况,如下图: 同样地,linux ...
 - Linux 下查看内存使用情况方法总结
		
Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...
 - linux下查看内存频率,内核函数,cpu频率
		
查看CPU: cat /proc/cpuinfo # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理 ...
 
随机推荐
- 22.I/O特性
			
IO资源 IO是与外界沟通和控制的通道,fpga提供了丰富的IO和一些实用的特性. 本文简要的将主要的特性摘录下来做设计参考用.具体参数参考handbook. 第一部分:IO特性概述 -----通过软 ...
 - [网络配置相关]——ifconfig命令、ip命令、route命令
			
ifconfig命令 1. 查看已被激活的网卡的详细信息 # ifconfig eth0 Link encap:Ethernet HWaddr 00:30:67:F2:10:CF inet addr: ...
 - <梦断代码>读后感2
			
<梦断代码>这本书读了一半,我的心情久久不能平静. 为什么好软件如此难做?这是我本人,我想也是很多人都在苦苦思索的一个问题,虽然没有人能有完全确定的答案,但通过书中的记述,和个人思考,还是 ...
 - Struts2重定向
			
第一方式: 参数之间必须使用& .&是&在xml中转义字符 <result name="error" type="redirect& ...
 - 反向Ajax,第2部分:WebSocket
			
转自:http://kb.cnblogs.com/page/112616/ 前言 时至今日,用户期待的是可通过web访问快速.动态的应用.这一文章系列展示了如何使用反向Ajax(Reverse Aja ...
 - C语言遇到的错误和解决方案~~~持续更新,记录成长的过程
			
1.error C2296: '&' : illegal, left operand has type 'char [3]' scanf("%d" &x); 少了一 ...
 - bzoj 1041 圆上的整点                                                    分类:            Brush Mode             2014-11-11 20:15    80人阅读    评论(0)    收藏
			
这里先只考虑x,y都大于0的情况 如果x^2+y^2=r^2,则(r-x)(r+x)=y*y 令d=gcd(r-x,r+x),r-x=d*u^2,r+x=d*v^2,显然有gcd(u,v)=1且u&l ...
 - ssh 远程 centos 乱码
			
今天,帮我们同学处理一下中文显示乱码的问题.这个是个国内Linux用户烦恼的问题,由于大部分的Linux发行版都是以英语为主体的,而且英文在通用性和稳定性上都比中文要好一些,各种奇怪的BUG也要少一点 ...
 - Sqli-labs less 53
			
Less-53 和less51是一样的,只是这里的mysql错误不会在前台显示,但是对于stacked injection是一样的利用方式 http://127.0.0.1/sqli-labs/Les ...
 - CentOS7.0重置Root的密码
			
CentOS7.0重置Root的密码 首先进入开启菜单,按下e键进入编辑现有的内核,如下图所示 然后滚动列表,找到ro,将它替换成rw,并加上init=/sysroot/bin/sh,最终变为如下图 ...