怎樣用windbg檢視Hashtable

2022-02-19 05:03:06 字數 839 閱讀 1426

how to view hashtable using windbg:

由於hashtable結構比較複雜,但又比較常用,所以這次記錄一下用windbg去view hashtable的過程。

先看一下我的測試**:

class program

} 然後執行該程式,接著開啟windbg , attatch上這個程序。dso and do一下。

首先看到count是3,說明有三對值,接著可以看出keys 和values欄位的位址是0,事實上hashtable的value和key是存在bucket陣列裡的(變數名buckets),我們可以看下它的結構:

private struct bucket

容易看出,每一對key value對於乙個bucket例項,相應的要佔12byte。要想看key value,只能看這個buckets,先使用dumparray命令

ok,用這個命令就很看出了每個bucket例項欄位的位址,例如第乙個key的位址是01271be8 ,value的位址是01271c04 ,接著你就可以用do命令檢視具體的值了。

當然,你可能會奇怪,為什麼我們僅僅本來有三對值,這地方卻出來這麼多呢,那是因為hashtable基於效能上的考慮這樣設計的,具體這個名詞叫什麼我也忘了。

怎樣用UDP通迅

using system using system.data using system.net using system.net.sockets using system.collections using system.text using system.threading using syste...

怎樣用英語安慰人

1.pull yourself together.振作起來。2.keep your chin up.別灰心。3.don t let it get you down.it will be over with soon.別為此煩惱。事情很快就會過去的。4.don t be so miserable 別這...

怎樣用matlab實現do while

matlab 中的while迴圈只有 while statement end 這種迴圈結構。有時候由於問題的需要,使用do.while 結構能夠更好的解決問題。其實仔細分析一下,do while 的結構就是可以保證先執行一次操作,再進行判斷。而while 條件 是先對條件進行判斷來決定是否採取相應的...