混合模式调试

时间:2009-07-15 14:41:14

标签: c# debugging visual-studio-2005 c++-cli scope

更新:在进行更多挖掘之后,这似乎是静态方法和成员变量的问题。我在MSDN论坛上找到了this post,但没有回答。

我正在使用混合模式dll在同一解决方案中编写C#WinForms应用程序(.Net 2.0)。当我在调试时进入本机代码时,我无法“观察”许多指针变量。这似乎是一种奇怪的行为,因为有些指针是可观察的(我猜这是一个词:))

例如:

Connection* Connection::Instance()
{
    if (innerConnection == NULL)
    {
        innerConnection = new Connection();
    }

    return innerConnection;
}

虽然单步执行此方法,但我无法使用innerConnection。监视窗口中的值为“error:identifier'innerConnection'超出范围”。内部连接不应超出范围。

同样在“Autos”窗口的这个例子中,“this”有

C#项目被设置为启动项目,它引用了C ++ dll项目(All在同一个解决方案中)。我在C#项目中启用了本机调试,并在C ++ / CLI项目中将调试模式设置为Auto。我正在使用Visual Studio 2005

1 个答案:

答案 0 :(得分:2)

在我的情况下(原生EXE - >混合DLL - >托管程序集(所有Visual Studio 2008))我不得不将可执行文件的调试模式设置为'Mixed'。使用默认的“自动”设置,我无法进入托管程序集。