Windbg Memory(内存)窗口的使用

在 WinDbg 中,可以查看和编辑内存,通过输入命令或通过使用内存窗口。

内存窗口的打开

  • 通过菜单View-->Memory
  • 通过快捷键Alt+5
  • 通过工具栏

使用内存窗口

通过上面方式打开的窗口如下:

内存窗口显示多个列中的数据。 在窗口的左侧列显示每个行的开始地址。 其余列显示所需的信息,从左到右。 如果选择字节显示格式菜单中,对应于这两个字节的 ASCII 字符将显示在窗口的右侧。

请注意  默认情况下,内存窗口显示虚拟内存。 这种类型是内存的内存的在用户模式下可用的唯一类型。 在内核模式下,可以使用内存选项对话框以显示物理内存和其他数据空间。

在内存窗口中,可以执行以下操作:

  • 若要写入内存,请单击内存窗口并键入新数据。 您可以编辑仅十六进制数据,不能直接编辑 ASCII 和 Unicode 字符。 只要键入新的信息,更改才会生效。
  • 若要查看的其他部分的内存,请使用内存窗口工具栏上PreviousNext按钮()的或按 PAGE UP 或 PAGE DOWN 键。 这些按钮和密钥显示内存立即前面或后面的部分。 如果请求了无效的页面,将显示一条错误消息。
  • 若要导航窗口中,使用向右键、 向左键、 向上键和向下箭头键。 如果使用这些密钥来离开页面时,会显示一个新页面。 在使用这些密钥之前,应调整大小内存窗口,以便它不会包含滚动条。 此大小调整,可区分的实际页边缘和截止窗口。
  • 若要更改正在查看的内存位置,内存窗口顶部的地址框()中输入新的地址。 请注意内存窗口刷新其显示,而您输入一个地址,因此之前已完成键入地址,可获得错误消息。 请注意  中当前基数解释在框中输入的地址。 如果当前的基数不是 16,您应前缀与十六进制地址0x。 若要更改默认基数,请使用n (设置数量 Base)命令在调试器命令窗口中。 内存窗口本身中的显示不受当前的基数。
  • 若要更改窗口用于显示内存的数据类型,请使用内存窗口工具栏中的菜单显示格式(

    )。 支持的数据类型包括短单词、 双字和四字;short、 long,与四整数和无符号的整数;10 字节、 16 个字节,32 位和 64 字节实数;ASCII 字符;Unicode 字符;和十六进制字节。 十六进制字节的显示内容包括 ASCII 字符和。

内存窗口具有一个包含两个按钮、 菜单和一个框,但与其他命令的快捷菜单的工具栏。 若要访问菜单,请右键单击标题栏或单击窗口 (在右上角附近的图标)。 工具栏和快捷菜单包含以下几种选择:

  • (仅工具栏)地址框中,可指定新的地址或偏移量。 此框的确切含义取决于正在查看的内存类型。 例如,如果您正在查看虚拟内存,框中,可指定新的虚拟地址或偏移量。
  • (仅工具栏)显示格式使您能够选择新的显示格式。
  • (工具栏和菜单)Previous(在工具栏上) 和Previous page(在快捷菜单上) 会导致内存要显示的上一节。
  • (工具栏和菜单)Next(在工具栏上) 和Next page(在快捷菜单上) 会导致内存要显示的下一节。
  • (仅限菜单)工具栏工具栏,开启和关闭。
  • (仅限菜单)自动调整列可确保在内存窗口中显示的列数适合内存窗口的宽度。
  • (仅限菜单)停靠取消停靠将使窗口进入或离开停靠的状态。
  • (仅限菜单)移到新停靠内存窗口将关闭,并将其打开新的平台中。
  • (仅限菜单)设置为选项卡形式停靠为窗口中,键入目标作为其他内存窗口的选项卡形式停靠目标设置所选的内存窗口。 与选项卡式的集合中该窗口将自动进行分组之后作为选项卡形式停靠目标中选择一个打开的所有内存窗口。
  • (仅限菜单)始终浮点将使窗口停靠,即使仍拖到停靠位置。
  • (仅限菜单)移动与帧将使窗口移动时移动的 WinDbg 帧,即使在窗口已解除固定。
  • (仅限菜单)属性会打开内存选项对话框中,在本主题中的以下部分中所述。
  • (仅限菜单)帮助有关 Windows 调试工具文档中打开此主题。
  • (仅限菜单)关闭关闭此窗口。

原文地址:https://www.cnblogs.com/yilang/p/12076199.html

时间: 2024-10-27 05:41:12

Windbg Memory(内存)窗口的使用的相关文章

memory内存与swap内存之小解

计算机内存分为物理内存与虚拟内存,这两个内存分别对应memory内存与swap内存 memory内存:机器的物理内存,由RAM芯片组成,读写速度低于CPU一个量级,但是高于磁盘一个量级,也就是CPU>memory>磁盘 swap内存:由磁盘代替的虚拟内存,在一定程度上解决了机器内存不足的问题,但是磁盘读写要比真正的物理内存慢的多. 当程序起来后,系统判断是否有空闲的物理内存,如果有,直接将其调入物理内存运行,否则,根据优先级,选择进程交换到swap space等待或将数据写入swap,待需要时

联合体以及如何调出内存窗口

联合体相关: 其实联合体这块儿基本上跟struct用法是相同的,只不过联合体这里公用一块内存. 为了合理演示其所有内容,需要调用一个内存窗口.这个在查找的时候还是费了一些功夫的.来分享一下. 这样直接执行根本看不到具体的执行过程. 可是怎么才能看到 他们共用一块内存呢? //从当前窗口是没有办法查看内存的,程序一定要跑起来~才能查看.可是 跑到一半怎么才能查看呢!?~所以在 vs2010及以上版本,调用内存窗口很大的前提就是,为你正在进行的程序设置断点: 如下图: 然后运行程序. 进入当前界面.

Android OOM(Out of memory) 内存泄露基本知识

Android OOM(Out of memory) 内存泄露基本知识 转载至:http://blog.csdn.net/emilychai2010/article/details/12710135 1. 内存泄露 2. Android里的垃圾回收 3. Heap 4. 调试 5. 常见的内存泄露 1.什么是内存泄露(memory leak)? A "memory leak" in your code is when you keep a reference to an object

Windbg 分析内存上涨

症状: 上次一站点发布后,发现服务器内存持续上涨.正常本地缓存占了4-5个G ,使用内存直接涨到20G后应用程序池重启. 检查代码后发现,没有什么内存泄漏的地方.最后还是找来DUMP文件排查原因. !dumpheap –stat       查看当前所有托管类型的统计信息 System.Threading.ReaderWriterCount 占了七个G.这是个读写锁, 有一亿多个对象. !dumpheap –mt  000007fef32fa770        查看函数表地址中的各个对象信息

基于WinDbg的内存泄漏分析

在前面C++中基于Crt的内存泄漏检测一 文中提到的方法已经可以解决我们的大部分内存泄露问题了,但是该方法是有前提的,那就是一定要有源代码,而且还只能是Debug版本调试模式下.实际上很 多时候我们的程序会用到第三方没有源代码的模块,有些情况下我们甚至怀疑系统模块有内存泄露,但是有没有证据,我们该怎么办? 这时我们就要依靠无所不能的WinDbg了. WinDbg的!heap命令非常强大,结合AppVerifier可以对堆(heap)内存进行详细的跟踪和分析, 我们接下来对下面的代码进行内存泄漏的

如何使用windbg检测内存泄漏

1.设置符号路径 打开windbg,在菜单Symbol File PATH设置 "SRV*d:\symbols*http://msdl.microsoft.com/download/symbols" d:\symbols是你本地磁盘的一个文件夹,用于下载微软的符号文件 另外,把调试的目标程序的PDB文件路径加到后面 例如:SRV*d:\symbols*http://msdl.microsoft.com/download/symbols;d:\Develop\projects\Servi

Windbg .net内存调试有用的命令(笔记 )

和.net内存调试相关的Windbg命令 首先.load sosex.dll加载ex调试扩展dll 1.!gcgen [obj地址] 显示对象属于gc代数 2.!dumpgen [0/1/2] dump出0/1/2代所用对象 3.strings 在托管堆搜索字符串,可指定匹配字符串如:!strings -m:Debug -g:指定代数,-n:最小大小,-x:最大大小 4.!dumpheap 分析托管堆对象分配汇总信息 5.!eeheap -gc/-loader 查看gc堆/loader堆信息 6

[Android Memory] 内存分析工具 MAT 的使用

转载自: http://blog.csdn.net/aaa2832/article/details/19419679 1 内存泄漏的排查方法 Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 : ·    heap 查看堆的分配情况 ·    allocation tracker跟踪内存分配情况 DDMS 这两项功能有助于找到内存泄漏的操作行为. Eclipse Memory Analysis Tools (MAT) 是一

Windbg Call Stack窗口的使用

调用堆栈是指向程序计数器当前位置的函数调用链.调用堆栈的顶部函数是当前函数,下一个函数是调用当前函数的函数,依此类推.显示的调用堆栈基于当前程序计数器,除非更改寄存器上下文. 在 WinDbg 中,可以通过输入命令或通过使用Call Stack窗口中查看调用堆栈. Call Stack窗口的打开方式 通过菜单View--->Call Stack打开 通过快捷键Alt+6打开 通过工具栏按钮打开 Call Stack窗口 作为一种替代方法 k命令时,您可以调用窗口中查看调用堆栈.通过上面的方式打开