日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Windows 2000對(duì)調(diào)試技術(shù)的支持( 二 )


一個(gè)崩潰轉(zhuǎn)儲(chǔ)( Crash Dump )只是簡(jiǎn)單將當(dāng)前內(nèi)存數(shù)據(jù)寫入一個(gè)磁盤文件而已 。因此 , 一個(gè)完整的崩潰轉(zhuǎn)儲(chǔ)( crash dump )文件的大小通常與系統(tǒng)物理內(nèi)存一樣大(事實(shí)上 , 會(huì)略微小些) 。崩潰轉(zhuǎn)儲(chǔ)( Crash dump )是由內(nèi)核中的一個(gè)特殊程序在處理致命錯(cuò)誤過(guò)程中生成的 。然而 , 這個(gè)例程( handler )并不是立即將內(nèi)存數(shù)據(jù)寫入目標(biāo)文件中 。這是個(gè)不錯(cuò)的處理方式 , 因?yàn)樵谙到y(tǒng)崩潰后 , 磁盤文件系統(tǒng)可能也不能正常工作 。因此 , 內(nèi)存映像首先被復(fù)制到頁(yè)面文件存儲(chǔ)器( page file storage ) , 這是系統(tǒng)內(nèi)存管理器的一部分 。因此 , 你應(yīng)該將你的頁(yè)面文件大小增加到至少兩倍于物理內(nèi)存 。兩倍?一樣大還不夠嗎?當(dāng)然 — 那只夠存放崩潰轉(zhuǎn)儲(chǔ)( crash dump ) 。要知道 , 在啟動(dòng)時(shí) , 系統(tǒng)會(huì)嘗試將崩潰轉(zhuǎn)儲(chǔ)( crash dump ) 映像復(fù)制到實(shí)際的磁盤文件 , 這意味著 , 如果系統(tǒng)不能及時(shí)的釋放映像數(shù)據(jù)占用的頁(yè)面文件 , 它就可能用盡所有的虛擬內(nèi)存 。通常 , 系統(tǒng)會(huì)處理這種情況 , 它會(huì)瘋狂 的讀寫磁盤并向你拋出一個(gè)惹人厭的“虛擬內(nèi)存不足”的警告 。只要你預(yù)料藍(lán)屏的概率會(huì)增大時(shí) , 將頁(yè)面文件設(shè)置的足夠大 , 這將會(huì)為你節(jié)省很多時(shí)間 。
到這兒 , 你應(yīng)該打開 Windows 2000 的控制面板 , 改變?nèi)缦碌脑O(shè)置:
l 增加頁(yè)面文件到至少兩倍物理內(nèi)存的大小 。
l 接下來(lái) , 配置系統(tǒng)以便當(dāng)藍(lán)屏發(fā)生時(shí)生成一個(gè) 崩潰轉(zhuǎn)儲(chǔ)( crash dump )文件 。在系統(tǒng)屬性對(duì)話框里 , 選擇高級(jí)頁(yè) , 然后單擊啟動(dòng)和恢復(fù)按鈕 , 檢查寫入調(diào)試信息選項(xiàng) 。你應(yīng)該在下拉列表中選擇完成內(nèi)存轉(zhuǎn)儲(chǔ)選項(xiàng) 。在轉(zhuǎn)儲(chǔ)文件對(duì)話框中輸入一個(gè)文件名和路徑 , 轉(zhuǎn)儲(chǔ)文件將會(huì)從頁(yè)面文件中復(fù)制到你指定的這個(gè)文件中 。%SystemRoot%MEMORY.DMP 是默認(rèn)設(shè)置 。
讓系統(tǒng)崩潰
當(dāng)設(shè)置好系統(tǒng)準(zhǔn)備一次 crash dump 后 , 是時(shí)候做在 Windows 2000 系統(tǒng)程序員一生中最厭惡的事了:開始讓系統(tǒng)崩潰!通常 , 只要達(dá)摩克利斯的劍掛在了你的頭頂上(通常是在離產(chǎn)品截止時(shí)間還有幾個(gè)小時(shí)的時(shí)候)你就會(huì)看到恐怖的藍(lán)屏 ?,F(xiàn)在 , 是你自愿讓系統(tǒng)崩潰 , 但你可能無(wú)法找到有問題的軟件來(lái)完成這項(xiàng)“工作” 。來(lái)試試 David Solomon 在他的《 Inside Windows NT 第二版》中提到的那個(gè)優(yōu)雅的訣竅:
“如何能可靠的產(chǎn)生一個(gè)崩潰轉(zhuǎn)儲(chǔ)( crash dump )文件?只需要使用 Windows NT 資源工具中的 kill.exe 工具 , kill 掉 Win32 子系統(tǒng)進(jìn)程( csRSS.exe )或者 Windows NT 登陸進(jìn)程( winlogon.exe ) , 你必須有管理員權(quán)限”( Solomon [1998],p.23. )
神奇 , 太神奇了!這個(gè)竅門不能在 Windows 2000 上工作!第一感覺 , 很不走運(yùn) , 但是從另一個(gè)角度看 , 這是個(gè)好消息 。當(dāng)你知道使用微軟自己正式發(fā)布的一個(gè)小工具就能如此輕松的破壞系統(tǒng) , 你會(huì)怎樣想?事實(shí)上 , 微軟關(guān)閉這個(gè)安全漏洞非常對(duì) 。可是 , 我們現(xiàn)在需要一種方法來(lái)使系統(tǒng)崩潰啊 。在這一點(diǎn)上 , 想想那個(gè)古老而簡(jiǎn)單的 NT 規(guī)則:“ If anything seems to be impossible in the Win32 Word, just write a kernel-mode driver, and it will work out all right! ” Windows 2000 非常謹(jǐn)慎的管理 Win32 程序 。它在應(yīng)用程序和內(nèi)核之間構(gòu)建了一堵墻 , 任何企圖跨越此邊界者都會(huì)被毫不留情的解決掉 。這對(duì)于系統(tǒng)的穩(wěn)定性是個(gè)好消息 , 但是對(duì)于編寫需要直接與硬件打交道的程序的人來(lái)說(shuō)并不是個(gè)好消息 。想想 Dos , 在那兒任何程序都可以直接觸及硬件 , 在這方面 Windows 2000 有些過(guò)分講究 。但這并不意味著在 Windows 2000 中訪問硬件是不可能的 。不同的是 , 這種訪問被限制到一個(gè)特殊類型的模塊 — 內(nèi)核模式的驅(qū)動(dòng)程序( Kernel-mode driver ) 。

推薦閱讀