久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

在WinDBG中查看內存的命令

 ar135 2016-04-06

當我們在調試器中分析問題時, 經常需要查看不同內存塊的內容以分析產生的原因, 并且在隨后驗證所做出的假設是否正確. 由于各個對象的狀態(tài)都是保存在內存中的, 因此內存的內容也就相當于對象的狀態(tài).

 

d命令最常見的格式就是根據指定的類型信息來顯示存儲在某地址中的數據. 調試器并不會去猜測這個地址上存儲的是什么數據, 因為在大多數情況下猜測都是錯誤的. 所以需要用戶顯式地制定按照何種格式來解析數據. 命令格式如下:

d [type] [address range]

 

  • d    - 該命令按照上一個d*命令的同樣格式顯示數據. 如果前面沒有d*命令的話, 它跟db的效果相同.
  • da  - ASCII 字符. 每行最多顯示48個字符. 直到遇到一個null字節(jié), 或者指定的范圍內的所有字符都已經被顯示. 所有無法打印的字符都會被顯示為" . "
  • db  - 字節(jié)值或ASCII字符. 默認長度為128字節(jié).
  • dc  - 雙字(4字節(jié))值和ASCII字符. 默認長度為32 DWORDs(128字節(jié))
  • dd  - 雙字(4字節(jié)). 默認長度為32 DWORDs(128字節(jié))
  • dD  - 雙精度浮點數(8字節(jié)). 默認15個數字(120字節(jié))
  • df   - 單精度浮點數(4字節(jié)). 默認16個數字(63字節(jié)).
  • dp  - 指針大小的值. 相當于dd或dq, 具體取決于計算機的處理器架構是x86還是x64. 默認長度32個雙字, 或16個四字(128字節(jié)).
  • dq  - 四字值(8字節(jié)). 默認16四字(128字節(jié)).
  • du  - Unicode字符. 每行顯示至多48個字符. 直到遇到一個null字節(jié), 或者指定的范圍內的所有字符都已經被顯示. 所有無法打印的字符都會被顯示為" . "
  • dw  - 字值(2字節(jié)). 默認顯示64個字(128字節(jié)).
  • dW - 字值(2字節(jié))和ASCII字符. 默認64個字(128字節(jié)).
  • dyb - 二進制值和字節(jié)值. 默認32個字節(jié).
  • dyd - 二進制值和四字值(4字節(jié)). 默認是8個雙字(32字節(jié)).

這里順便把計算機中的計量單位也總結一下吧.

============

bit(比特) – 1 or 0

1 byte(字節(jié)) = 8 bit(比特)

1 word(字) = 2 byte = 16 bit

1 dword(雙字) = 4 byte = 32 bit

1 qword(四字) = 8 byte = 64 bit

 

1 ASCII character = 1 byte

1 Unicode character = 2 byte

 

另一種方式 -  d*s

===========

該命令形式可以將內存區(qū)域轉儲出來, 并且將內存中的每一個元素都視作一個單元對其進行解析. 這個命令有三種形式, 通常被稱之為d*s命令.

dds 將四個字節(jié)視作一個單元

dqs 將八個字節(jié)視作一個單元

dps 則根據當前處理器架構來選擇最合適的長度. 它將每個從內存讀取出來的值都作為某種數據類型的指針.

 

在內存中搜索某個值 - 命令s

============

命令s(表示搜索search), 是一個非常有用的命令, 可以用來在調試目標內找出已知的值.

這個命令的參數包括素要搜索的類型和值.

s –d 0012ff40 L1024 c0000005

其中-d代表雙字DWORD, 是搜索的類型. 其他類型例舉如下:

  • b – Byte
  • w – WORD
  • d – DWORD
  • q – QWORD
  • a – ASCII字符串
  • u – Unicode字符串

查看內存的每個位置上都包含著什么

==============

在調試時, 對象和棧都包含了大量的指針, 我們無法很快地猜測出他們所表示的數據. 雖然我們可以很容易地將內核空間的地址與用戶態(tài)空間的地址分開, 但要把一個表示棧的地址和一個表示堆的地址區(qū)分開卻不容易. 我們可以使用一個很有用的擴展命令!address <your address>來解決這個問題.

該命令的參數為一個地址, 如果沒有指定地址參數, 那么這個擴展命令將搜索并且枚舉所有的內存區(qū)域并給出詳細的信息.

image

 

參考資料:

WinDBG幫助文件

<<AWD>>

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現有害或侵權內容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多