让我们说这是一个界面
interface Ifoo
{
HRESULT foo();
};
是二进制dll的一部分。我没有这方面的源代码。
我可以在使用Windbg从这个二进制dll的接口Ifoo公开的foo()API上放一个断点吗?
我知道我们可以使用windbg在二进制dll上设置断点但使用COM我不确定。
答案 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