Отладка COM DLL в VS2010 - PullRequest
       28

Отладка COM DLL в VS2010

1 голос
/ 19 августа 2011

У меня есть ASP.NET WebApplication (.NET 4.0 / C #), который работает с внешней библиотекой COM (написанной на C ++).

При вызове функции, который отлично работал с более старым проектом ASP,Я получаю AccessViolationException в коде DLL.

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

Как я могу использовать эту отладочную DLL, чтобы выяснить, где происходит ошибка?Я не мог найти способ войти в метод, который я вызываю.Возможно ли это?

РЕДАКТИРОВАТЬ: У меня есть файл .pdb, если это хорошо.Почему-то я не вижу COM dll в обзоре Debug-> Windows-> Modules.Я действительно застрял, любая помощь приветствуется.

Ответы [ 2 ]

4 голосов
/ 19 августа 2011

Необходимо включить Отладка неуправляемого кода .

С MSDN :

Свойство отладки неуправляемого кода, доступное на странице «Отладка» конструктора проектов, определяет, поддерживается ли отладка собственного кода. Выберите эту опцию, если вы делаете вызовы COM-объектов или запускаете специальную программу, написанную на собственном коде, который вызывает ваш проект, и вам нужно отладить собственный код.

Для ASP необходимо проверить «Собственный код» в разделе «Отладчики» на вкладке «Интернет».

Также у вас должна быть отключена Just My Code в опциях отладки.

0 голосов
/ 05 августа 2016

Возможно, вы могли бы использовать Ildasm.exe для копирования DLL, чтобы увидеть, что вам не хватает.Что касается нарушений, это звучит так, как будто это похоже на эту проблему.Попробуйте статический импорт из этого SO.MsCorlib.dll может иметь проблему с DLL третьей стороны.

Неуправляемая DLL, вызывающая AccessViolationException

Помните о зависимостях и о том, что у вас могут возникнуть проблемы с маршалингом.Я советую использовать DllImport в консольном приложении, чтобы посмотреть, сможет ли оно разрешиться.Всего наилучшего!

...