Отладка библиотеки DLL VC++ 6, вызванной из C#
У меня есть старая DLL, написанная в Visual Studio 6, которую я вызываю из C#, написанной в Visual Studio 2010. Библиотека DLL не работает должным образом, и я хочу отладить ее. Как я могу это сделать? У меня есть проект исходного кода, но я не вижу, как я могу войти в него.
Примечание: когда я говорю "не работает", вызов DLL завершается успешно, и он проходит небольшой путь через код в DLL, прежде чем потерпеть неудачу, но я хочу точно отследить, где именно.
3 ответов:
Методика отладки DLL описаназдесь на MSDN. Вам нужно будет сделать это из Visual Studio 6 (то есть инструмент, который разработал DLL), и поэтому терминология будет изменена. Но принципы остаются теми же.
Прикрепление отладчика VS6 к процессу .NET будет работать до тех пор, пока у вас есть PDB-файл с соответствующим двоичным кодом и исходными кодами. Однако вы можете взломать только DLL-код.
Присоединение другого VS+ будет работать, если флаг" разрешить неуправляемую отладку " установлен, но есть вероятность, что символы не загружаются отладчиком. Перекомпиляция библиотеки DLL должна решить последнюю проблему.
Откройте проект библиотеки Dll Visual C++, установите точку останова там, где вам нужно. В свойствах проекта, отладка, исполняемый файл для сеанса отладки, введите .Чистый исполняемый файл, который использует эту библиотеку DLL. Начать отладку (перейти). При вызове функции VC++ отладчик прерывается. Используя этот способ, вы можете отлаживать только неуправляемый код VC++.
Другим способом является запуск отладки из клиента .NET в смешанном режиме отладки. Добавьте проект VC++ в решение и перестройте его для отладки как управляемого, так и неуправляемого кода.
Comments