C# 混合模式调试

C# 混合模式调试,c#,debugging,visual-studio-2005,c++-cli,scope,C#,Debugging,Visual Studio 2005,C++ Cli,Scope,更新:在进一步挖掘之后,这似乎是静态方法和成员变量的问题。我在MSDN论坛上找到了,但没有答案 我正在编写一个C#WinForms应用程序(.Net 2.0),其中包含一个混合模式dll,所有这些都在同一个解决方案中。当我在调试时进入本机代码时,我无法“观察”许多指针变量。这似乎是一种奇怪的行为,因为一些指针是可观察的(我猜这是一个单词:) 例如: Connection* Connection::Instance() { if (innerConnection == NULL)

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

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

例如:

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

    return innerConnection;
}
在单步执行此方法时,innerConnection对我不可用。监视窗口中的值为“错误:标识符'innerConnection'超出范围”。内部连接不应超出此处的范围

在本例中,在“Autos”窗口中,“this”具有

将C++项目设置为启动项目,引用C++ DLL项目(所有在同一解决方案中)。我已经在C#项目中启用了本机调试,并在C++/CLI项目中将调试模式设置为自动。我使用的是Visual Studio 2005(本机EXE-->混合DLL-->托管程序集(所有Visual Studio 2008)),我必须将可执行文件的调试模式设置为“混合”。使用默认的“自动”设置,我无法进入托管程序集。

请参阅:了解混合模式调试的操作方法