gdb查看内存地址和栈中的值
2016-05-17 15:50
369 查看
gdb查看指定地址的内存地址的值:examine 简写 x-----使用gdb> help x 来查看使用方式 x/ (n,f,u为可选参数) n: 需要显示的内存单元个数,也就是从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义 f:显示格式 x(hex) 按十六进制格式显示变量。 d(decimal) 按十进制格式显示变量。 u(unsigned decimal) 按十进制格式显示无符号整型。 o(octal) 按八进制格式显示变量。 t(binary) 按二进制格式显示变量。 a(address) 按十六进制格式显示变量。 c(char) 按字符格式显示变量。 f(float) 按浮点数格式显示变量 u:每个单元的大小,按字节数来计算。默认是4 bytes。GDB会从指定内存地址开始读取指定字节,并把其当作一个值取出来,并使用格式f来显示 b:1 byte h:2 bytes w:4 bytes g:8 bytes 比如x/3uh 0x54320表示从内存地址0x54320读取内容,h表示以双字节为单位,3表示输出3个单位,u表示按照十六进制显示。 from /article/6814404.html
gdb打印表达式的值:print/f 表达式f是输出的格式,x/d/u/o/t/a/c/f
表达式可以是当前程序的const常量,变量,函数等内容,但是GDB不能使用程序中所定义的宏
查看当前程序栈的内容: x/10x $sp-->打印stack的前10个元素查看当前程序栈的信息: info frame----list general info about the frame查看当前程序栈的参数: info args---lists arguments to the function查看当前程序栈的局部变量: info locals---list variables stored in the frame查看当前寄存器的值:info registers(不包括浮点寄存器) info all-registers(包括浮点寄存器)查看当前栈帧中的异常处理器:info catch(exception handlers)from http://blog.chinaunix.net/uid-29062294-id-4255572.html[/code]
相关文章推荐
- JAVA线程-Thread类的方法
- POI操作Excel常用方法总结
- 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
- 一段关于Unix与 Linux的暗黑史
- leetcode 9. Palindrome Number
- Windows 7 SP1 x64 旗舰版 微软官方安装U盘的制作
- 简易列表
- Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessException总结
- latex 一个表格单元显示多行,及长表格(表格横页显示)
- LeetCode 88. Merge Sorted Array
- Error:Execution failed for task ':app:dexDebug'. > com.android.ide.common.process.ProcessException总结
- codeforces 672D 二分
- SQL 字符和ASCII码互相转换和应用
- PHP7.0.4与PHP5.6.19对比
- Spring基于注解及SpringMVC
- java 面向对象练习题5
- ListView
- 创建用户并添加密码
- 原生二维码扫描
- Flume-ng HDFS Sink “丢数据”