【问题标题】:debugging an inproc com server running in dllhost.exe调试在 dllhost.exe 中运行的 inproc com 服务器
【发布时间】:2011-07-29 07:33:33
【问题描述】:

我正在编写一个在 dllhost.exe 代理中运行的 inproc com dll,但我在调试它时遇到了问题。

如果同时运行多个 dllhost.exe,则很难找到合适的附加调试器。如果有很多正在运行,是否有一种简单的方法可以识别您的?

谢谢

【问题讨论】:

  • 欢迎来到 Stack Overflow。请单独发布您的问题。这样一来,您就可以得到最好的答案(而不是只回答其中一个问题,或者一个问题回答得好而另一个问题回答得不好的回答)。它使投票更容易,让您更容易选择最佳答案,并为您(和其他人)提供更多获得声誉积分的机会。点击“编辑”链接,删除最后一段,并将其粘贴为新问题。
  • 你给了自己很多充分的理由来创建自己的代理人。
  • 分成2个问题,另一个在这里stackoverflow.com/questions/5542443/…

标签: c++ windows com


【解决方案1】:

进程资源管理器 (http://technet.microsoft.com/en-us/sysinternals/bb896653) 具有方便的功能,可让您查看哪些进程加载了哪些 DLL。您还可以在所有正在运行的进程中搜索 DLL。

Sysinternals 还有一个名为 ListDLLs (http://technet.microsoft.com/en-us/sysinternals/bb896656) 的命令行实用程序,它应该适合您。

一旦找到拥有 DLL 的进程的 PID,就可以附加到它。

【讨论】:

  • 确保只有在您知道“COM 代理”的含义时才回答这个问题。
  • @Hans:我看不出使用 COM 代理来确定哪些进程加载了特定的 DLL 有什么不同。据我所知,上述方法应该仍然有效。请说明您认为答案不正确的原因,而不是仅仅暗示答案不正确。这样评论会更有用。
【解决方案2】:

还有一种替代策略。只是不要试图确定要附加到哪个。在您的代码中设置断点并附加到所有 dllhost.exe 进程 - 遇到断点时,该进程将在调试器下暂停。

【讨论】:

    猜你喜欢
    • 2011-07-29
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多