代码之家  ›  专栏  ›  技术社区  ›  anand

从COM接口公开的API上的断点

  •  0
  • anand  · 技术社区  · 16 年前

    假设其他接口是一个接口

    interface Ifoo
    {
       HRESULT foo();
    };
    

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

    我可以在使用windbg的二进制dll的接口i foo中公开的foo()api上放置断点吗?

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

    2 回复  |  直到 16 年前
        1
  •  1
  •   Johannes Passing    16 年前

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

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

        2
  •  1
  •   anand    16 年前

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

    所以我发现了。在我的例子中,我想在一个Windows系统DLL上放置断点。

    所以我在windbg上运行命令

    > x  dllname*!foo*
    

    它给出了名与dllname匹配的dlls中的foo实现列表。

    喜欢

    7331122 dllname!CFoo::foo
    

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

    bp 7331122
    

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

     >bl
    
    推荐文章