命令列編譯 WRK ,windbg 除錯

2021-10-11 01:58:07 字數 2593 閱讀 1693

我看其他部落格有人用 win2k3 sp2 也成功了,但我還是按照書上的教程,裝的sp1版本。

/s/1x-vmb0try27czerivzs8ua

提取碼:u4j3

進入 wrk 根目錄,建立bat檔案,用於編譯x86版本,輸入以下內容:

編譯x86.bat

set path=e:\wrk-v1.2\tools\x86;%path%

cd base\ntos

nmake -nologo x86=

msvcr71.dll ,msvcp71.dll複製到 wrk-v1.2\tools\x86 目錄下。

然後雙擊bat就能編譯相應版本的wrk核心了,這個過程會持續一分鐘左右。

編譯x86成功後結果如圖:

教程上說的要使用多核版本,所以虛擬機器設定成多核的:

假設您已經準備好 win2k3 sp1 虛擬機器了,開啟虛擬機器,進入 system32,把剛剛編譯生成的 wrkx86.exe 複製進去,然後回到 wrk 根目錄,把 wrk-v1.2\ws03sp1hals\x86\halacpim\halacpim.dll 也複製到 system32裡。

下面引用 《windows核心原理與實現》附錄a的一段話:

注意,實體機系統的hal 有三種可能:如果是支援acpi 的pic(中斷控制器)機 器,則使用halacpim.dll;如果是支援acpi

的apic(高階可程式設計中斷控制器)機器,則 使用halmacpi.dll;如果是非pic 和apic 的機器,則使用halmps.dll

。wrk 的 wrk-v1.2\ws03sp1hals\x86\目錄下包含了這三個hal 模組。

然後修改 c:\boot.ini ,加兩行配置,分別是 wrk 除錯模式和 wrk 非除錯模式:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\windows

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\windows="windows server 2003, enterprise" /noexecute=optout /fastdetect

multi(0)disk(0)rdisk(0)partition(1)\windows="wrk debug" /noexecute=optout /fastdetect /debug /debugport=com_debug /kernel=wrkx86.exe /hal=halacpim.dll

multi(0)disk(0)rdisk(0)partition(1)\windows="wrk noebug" /noexecute=optout /fastdetect /kernel=wrkx86.exe /hal=halacpim.dll

最後,關閉 win2k3,修改虛擬機器屬性,新增乙個 com_debug 埠用於雙機除錯:

啟動 windbg,引數如下:

"c:\program files (x86)\debugging tools for windows (x86)\windbg.exe" -b -k com:pipe,port=\\.\pipe\com_debug,baud=115200,reconnect -y
啟動虛擬機器,選擇第二項,wrk除錯,但是先別點,先改一下符號檔案:

先改符號檔案,我們把 halacpim.pdb 和 wrkx86.pdb 這兩個符號檔案加到 windbg 裡,勾選 reload,點ok就好了。

這時候就可以讓虛擬機器跑起來了:

斷下來了,太好了!

命令列編譯Solution

c windows devenv.com microsoft r 開發環境 7.10.3077 版。c microsoft corp 1984 2001 保留所有權利。用法 devenv solutionfile projectfile anyfile.ext switches 可以呼叫 deven...

命令列編譯C C

命令列編譯c c 程式的方法 1.先用記事本寫c c 如下 includeusing namespace std int main 儲存在任意資料夾下,以d盤為例,儲存為d a.cpp 注意 字尾名改為.cpp,c語言則為.c 2.用記事本寫批處理檔案 假設vc6.0安裝在d program fil...

less 命令列編譯

用命令列編譯,需要先把環境配置好。環境配置教程 less 環境搭建 第1步 win r,輸入cmd 第2步 進入你存放less的位置。首先是先選擇碟符,比如 h 選擇碟符後,後面要加冒號。然後 用cd命令,進入對應目錄 cd practice less less 第3步 用less的命令進行編譯 l...