我正在开发一个在 Internet Explorer 中运行的浏览器助手对象。我正在编写调试消息,ATLTRACE("...");
当 Visual Studio 附加到iexplore.exe
进程时,这些看起来很好,但这对于快速测试来说很慢。DebugView 没有从我的 BHO 中捕获任何内容。
为什么 DebugView 不显示 BHO 调试消息?是否与以低完整性级别运行的 Internet Explorer 有关?
我正在开发一个在 Internet Explorer 中运行的浏览器助手对象。我正在编写调试消息,ATLTRACE("...");
当 Visual Studio 附加到iexplore.exe
进程时,这些看起来很好,但这对于快速测试来说很慢。DebugView 没有从我的 BHO 中捕获任何内容。
为什么 DebugView 不显示 BHO 调试消息?是否与以低完整性级别运行的 Internet Explorer 有关?
假设您在 Vista 或更高版本上运行 IE(这听起来像是因为您在谈论完整性级别),您可以将 DebugView 的完整性级别设置为较低的完整性,以便任何应用程序都可以向它发送消息:
icacls dbgview.exe /setintegritylevel low
如果您不喜欢将 dbgview 永久设置为低完整性的想法(这可能会使保存日志和诸如此类的东西有点痛苦,因为它们只会进入低完整性存储),您可以运行 dbgview 的特定实例使用 Sysinternals 的psexec
工具以低完整性:
psexec -l dbgview
最后,如果您只担心加载 VS 调试器以附加到进程所需的时间,您可以使用命令行调试器(如 ntsd.exe 或 cdb.exe)。Ntsd.exe 随 Windows 一起提供,但较新的版本附带“Windows 调试工具”包,其中还包括非常相似的 cdb.exe。
对于您的快速测试,Visual Studio 是否仍在运行?如果是这样,那可能会导致此问题。