2009-06-11 28 views
0

暴露比方說thers是一個接口斷點上API從COM接口

interface Ifoo 
{ 
    HRESULT foo(); 
}; 

這是一個二進制DLL的一部分。我沒有這個源代碼。

我可以在使用Windbg的這個二進制DLL的界面Ifoo公開的foo()API上放置一個斷點嗎?

我知道我們可以把二進制DLL的斷點使用windbg,但使用COM我不知道。

回答

1

非常感謝您指出,我的意思是把實施foo的斷點。

所以我才發現。在我的情況下,我想把斷點放在Windows系統的DLL之一。

於是我就命令在WinDbg,從而

> x dllname*!foo* 

它給了我FOO實現的列表與姓名匹配的動態鏈接庫的Dllname。

7331122 dllname!CFoo::foo 

然後使用這個地址我把斷點

bp 7331122 

U可以使用命令查看設置斷點

>bl 
1

無論您是否使用COM,都不能在接口上放置斷點:接口永遠不會執行,因此無法在接口上「斷開」。

但是,如果您知道Ifoo由CFoo實現,您當然可以在CFoo :: foo上設置斷點。