从COM接口暴露的api断点

时间:2009-06-11 07:13:38

标签: com windbg breakpoints

让我们说这是一个界面

interface Ifoo
{
   HRESULT foo();
};

是二进制dll的一部分。我没有这方面的源代码。

我可以在使用Windbg从这个二进制dll的接口Ifoo公开的foo()API上放一个断点吗?

我知道我们可以使用windbg在二进制dll上设置断点但使用COM我不确定。

2 个答案:

答案 0 :(得分:1)

无论您是否使用COM,都不能在接口上放置断点:从不执行接口,因此无法在接口上“中断”。

但是,如果您知道Ifoo是由CFoo实现的,那么您当然可以在CFoo :: foo上设置断点。

答案 1 :(得分:1)

非常感谢你的指出,我的意思是把断点放在foo的实现上。

所以我发现了。在我的情况下,我想在一个Windows系统DLL上放置断点。

所以我在Windbg上运行命令

> x  dllname*!foo*

它给了我dll中foo实现的列表,名称与dllname匹配。

7331122 dllname!CFoo::foo

然后使用这个地址我放了断点

bp 7331122

您可以使用命令

查看设置的断点
 >bl