標籤:rbo info 讀寫 win 使用者 地區 EAP 私人 唯讀
記憶體類型:
即Type值,共有四種:第一種是什麼都不是,即尚未被使用的;
第二種是MEM_IMAGE,即地址映射於一個可執行鏡像檔案片段,如DLL檔案;
第三種是MEM_ MAPPED,即地址映射於不可執行檔鏡像檔案片段,如頁檔案;
第四種是MEM_PRIVATE,即私人有記憶體,這裡的私人是針對進程而言的,私人記憶體無法在多個進程間共用;
保護模式:即Protect值,上例中見識了兩種保護模式,
NOACCESS和READWRITE。從字面即很容易理解其意思,前者是不能做任何訪問的,因為空白閑記憶體是無效記憶體;後者則可讀可寫,但不能執行,說明是儲存資料的地方。所有可用的保護包括:PAGE_NOACCESS(不可訪問),PAGE_READONLY(唯讀),PAGE_READWRITE(讀寫),PAGE_EXECUTE(可執行), PAGE_EXECUTE_READ(執行並可讀),PAGE_EXECUTE_READWRITE(執行並可讀寫),PAGE_WRITECOPY(寫時拷貝),PAGE_EXECUTE_WRITECOPY(執行,並寫時拷貝), PAGE_GUARD(保護)
記憶體用途:即Usage值,有這樣一些值和用途。RegionUsageIsVAD:表示此地址地區已被分配;RegionUsageFree:代表此地址地區已被釋放,既沒有保留也沒有被提交,將來可以申請使用;
- RegionUsageImage:代表此地址地區被映射到二進位檔案的鏡像;Region UsageStack:代表此地址地區用於線程棧;RegionUsageTeb:代表此地址地區用於儲存目標進程的所有線程的TEB結構;
- RegionUsageHeap:代表此地址地區用於堆記憶體;RegionUsage Pdb:代表此地址地區用於儲存目標進程的PEB結構;RegionUsageProcessParameters:代表此記憶體塊用於儲存目標進程的啟動參數;
- RegionUsageEnviromentBlock:代表此地址地區用於儲存目標進程的環境塊
使用者環境下可使用下面的命令顯示記憶體統計資訊,包括記憶體用途、記憶體類型、記憶體狀態 !address -summary
命令!vprot顯示指定記憶體塊的資訊,側重於記憶體保護資訊;命令!vadump顯示整個記憶體空間資訊,dump者傾瀉也,開啟-v選項將顯示詳細(Verbose)資訊。
上面講過,使用者環境下使用“!address –summary”可顯示使用者空間的記憶體統計資訊;現在再看兩個核心命令,在核心環境下顯示記憶體的統計資訊:
此命令從實體記憶體角度顯示記憶體統計資訊。無數個頁表資訊將被列印出來,可以說是“最記憶體”的資訊。此命令會查看所有的頁幀,所以運行時會非常地耗時。
此命令從虛擬記憶體的角度顯示記憶體統計資訊,不僅能從全域角度顯示虛擬記憶體的使用方式,還能以進程為單位顯示記憶體使用量情況。
Windbg 查記憶體佔用