Отладка в смешанном режиме - PullRequest
2 голосов
/ 15 июля 2009

Обновление: после дополнительных копаний, похоже, проблема со статическими методами и переменными-членами. Я нашел этот пост на форумах 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 # и установил режим отладки на Auto в проекте C ++ / CLI. Я использую Visual Studio 2005

1 Ответ

2 голосов
/ 11 января 2010

В моем случае (собственный EXE -> смешанная DLL -> управляемая сборка (все Visual Studio 2008)) мне пришлось установить режим отладки исполняемого файла на «Смешанный». При настройке по умолчанию «Авто» я не смог войти в управляемую сборку.

...