4

是否有調試器可以從虛擬機的主機中運行?使用主機在虛擬機中運行的調試代碼

也就是說,我希望調試器能夠識別虛擬機的操作系統例程,內存位置等,並識別操作系統何時啓動certian EXE,而不是使用機器中的中斷。然後我希望能夠通過主機爲每個進程設置硬件-類似的斷點。我會澄清。虛擬化的計算機和操作系統永遠不會知道斷點是設置還是發生。所有調試處理將由模擬虛擬計算機的主機完成。

這將啓用更強大的斷點機制,例如「從CDROM驅動器讀取特定數據時中斷」,或「當磁盤上的某個文件包含以下字節序列時中斷」。

這種方法也將消除anti-debugger技術,這些技術在調試器下運行時會改變可執行文件的行爲。 (OTOH它開闢了一個反虛擬化技術的新領域,它依賴於仿真計算機和真實硬件之間的細微差別)。

有沒有這樣的產品?它看起來像個好主意嗎?

回答

3

VMware爲Visual Studio和Eclipse提供了一段時間的VM調試插件。甚至可以記錄虛擬機運行(記錄來自所有設備的輸入,允許與記錄時一樣精確重放虛擬機的執行),然後step through the recording with a debugger

+0

我希望我能接受兩個答案。無論如何,謝謝。 – 2009-08-06 09:27:21