0

可以说这是一个界面

interface Ifoo
{
   HRESULT foo();
};

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

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

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

4

2 回答 2

1

无论是否使用 COM,都不能在接口上设置断点:接口永远不会执行,因此无法在接口上“断”。

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

于 2009-06-11T07:47:31.790 回答
1

好吧,感谢您的指出,我实际上的意思是在 foo 的实现上放置断点。

所以我发现了。就我而言,我想在 Windows 系统 dll 之一上放置断点。

所以我在 Windbg 上运行命令为

> x  dllname*!foo*

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

7331122 dllname!CFoo::foo

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

bp 7331122

你可以使用命令查看设置的断点

 >bl
于 2009-06-12T01:24:00.843 回答