Отладка библиотеки DLL VC++ 6, вызванной из C#



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



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

566   3  

3 ответов:

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

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

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

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

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

Comments

    Ничего не найдено.