我有一个旧的C,其具有留在Visual Studio 6.0格式++ COM组件。我不能为我的生活弄清楚如何调试代码在实际的COM组件。

我能够建立在调试模式下,添加断点并将其附加到Dllhost.exe进程,但在Visual Studio环境将只显示我从dllhost.exe的,而不是我的源代码的反汇编(它也没有按“T停在断点)。

我记得前一阵子有一个方法,使IIS(或inetinfo.exe下)中的目标的调试行动的(即当的Visual Studio 6.0要求您为可执行文件来启动你的DLL)和IIS会在单一处理模式中运行。有您需要更改注册表项,但谷歌搜索并没有帮助。

有帮助吗?

解决方案

如果它是一个基于VB6 COM组件,您可以在VB6打开项目并运行它(一个DLL项目不能运行)。项目属性具有一些选项,由此它可以被要求运行,使得它运行与注册自身。

现在,尝试按ASP页,这使得对COM组件的调用。在类文件中设置的断点将受到打击,因为调用从ASP页面进行。

其他提示

首先,PDB文件(在编译过程中产生的)应与DLL相同的目录(可在项目属性被设置)。

如果你的对象不使用ASP的一些特有的功能(请求,响应,Session对象),您可以复制它的调用代码通过设定为.vbs文件和调试的的Cscript.exe your.vbs 的作为调试对象程序。

有说明(例如)如何调试ISAPI的DLL - 它们适用于您的COM对象太(但从OS /调试点都是加载到IIS进程的DLL)。把关注您的IIS版本和输入/输出的进程东西。

最后,如果没有其他帮助,您可以通过的 OutputDebugString的功能,看看它在自由 DebugView中节目。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top