Отладка VC ++ 6 DLL, вызываемой из C # - PullRequest
2 голосов
/ 19 сентября 2011

У меня есть старая DLL, написанная в Visual Studio 6, которую я вызываю из C #, написанная в Visual Studio 2010. DLL не работает должным образом, и я хочу отладить ее. Как я могу это сделать? У меня есть проект с исходным кодом, но я не вижу, как я могу войти в него.

Примечание. Когда я говорю «не работает», вызов DLL завершается успешно, и до сбоя проходит небольшой путь по коду в DLL, но я хочу точно отследить, где именно.

Ответы [ 3 ]

4 голосов
/ 19 сентября 2011

Техника отладки DLL описана здесь на MSDN. Вам нужно будет сделать это из Visual Studio 6 (т.е. инструмента, который разработал DLL), и поэтому терминология будет изменена. Но принципы остаются прежними.

2 голосов
/ 19 сентября 2011

Откройте проект Visual C ++ Dll, установите точку останова там, где вам нужно. В свойствах проекта «Отладка», «Исполняемый файл для сеанса отладки» введите исполняемый файл .NET, который использует этот Dll. Начните отладку (Go). Когда вызывается функция VC ++, отладчик прерывается. Используя этот способ, вы можете отлаживать только неуправляемый код VC ++.

Другой способ - начать отладку с клиента .NET в режиме смешанной отладки. Добавьте проект VC ++ в решение и пересоберите его для отладки как управляемого, так и неуправляемого кода.

2 голосов
/ 19 сентября 2011

Присоединение отладчика VS6 к процессу .NET должно работать, пока у вас есть файл PDB с соответствующим двоичным файлом и источниками. Однако вы можете нарушить только код DLL.

Присоединение другого VS + должно работать, если установлен флажок «Разрешить неуправляемую отладку», но существует вероятность того, что символы не загружаются отладчиком. Перекомпиляция DLL должна решить последнюю проблему.

...