2012-03-13 4 views
44

Есть ли способ отладки в декомпилированной dll с помощью Resharper, и если да, то как вы это делаете?Resharper отладка декомпилированной dll третьей стороны

Например, я пытаюсь отладить в System.Web.Http.ApiController, где я декомпилировал и могу видеть источник.

Я установил точку останова, но когда я запускаю приложение, он не разбивается на декомпилированную точку останова при отладке.

+0

Вы уже просмотрели параметры отладки Visual Studio (Инструменты-> Параметры-> Отладка-> Общие). Например. * Включить только мой код (только управляемый) * должен быть отключен. – brgerner

+0

ReSharper 6 имеет функцию автоматической декомпиляции: Возможно, этого декомпилированного источника достаточно. – brgerner

ответ

6

Насколько я знаю, что это не возможно, чтобы отладить декомпилированный исходный код .NET с помощью Resharper (до v6.1)

Однако this article объясняет, как вы можете отлаживать в источник .net с Визуальным Studio 2010 - если вам нужны инструкции для другой версии VS, просто используйте ссылку «Другие версии» в верхней части страницы.

+0

Вы можете декомпилировать DLL с помощью dotPeek, а затем настроить сервер символов в VS. См. Эту статью https://medium.com/@jackspektor/not-just-my-code-how-to-debug-third-party-libraries-without-decompiling-them-8e47e706dbe7 –

1

Для того, чтобы войти в код, для этого вам необходимо загрузить соответствующие файлы *.pdb.

В противном случае это может помочь декомпилировать двоичный файл, например. Telerik свободно доступен JustDecompile.

Но вы должны знать, что это может быть нарушать лицензионные соглашения стороннего поставщика.

10

Нет, это будет невозможно с помощью только Visual Studio и ReSharper, но есть еще один продукт, который может вам помочь, .NET Reflector.

В редакции VSPro имеется «отладочная сборка с использованием отладчика Visual Studio, даже если у вас нет исходной» функции, которая позволяет создавать файлы .pdb и декомпилировать исходный код для уже построенных сборок .NET.

Исходя из опыта, у него были некоторые проблемы с некоторыми сборками, но я не могу вспомнить, почему это было, так что это может или не поможет вам.

С помощью ReSharper вы можете посмотреть на декомпилированный исходный код из сборок, почти так же, как Reflector будет генерировать декомпилированный источник, но вы не можете отлаживать код с этими исходными файлами с помощью ReSharper.

6

[Полное раскрытие информации - я сотрудник Telerik] С последней версией JustCode от Telerik вы можете отлаживать декомпилированный код, не покидая Visual Studio. Для получения дополнительной информации вы можете прочитать мое сообщение в блоге, объявив об этом функцию here.

+1

Это единственный, который работал для меня. .Net Reflector продолжил сбой visual studio 2010, и Resharper разрешил просмотр декомпилированного кода, но не отладки через него. – Dwayne

+1

Но это не дешево :) –

+0

Я бы предпочел не отлаживать его за столько денег lol – sotn

31

Да, вы можете с помощью Resharper 9.0 (не уверены в предыдущих версиях).

Перейти к «Resharper Меню»> «Windows»> «Assembly Explorer»

Добавить сборку там с первой кнопки слева (с + на нем)
Затем щелкните правой кнопкой мыши на ней и выберите «Generate Pdb ...» (подождите, пока это будет сделано) , и теперь вы сможете прорвать код.
Однако обратите внимание, как сказал Йенс, он будет, вероятно, лицензии нарушает условия

+4

Я написал сообщение в блоге, объяснив, как это более подробно: http://blog.pglazkov.com/2016/02/how- to-debug-any-library-source-code.html –

+1

Если вы уже отлаживаете, перейдите в раздел «Отладка»> «Windows»> «Модули». Выберите сборку, которую вы хотите отлаживать, и загрузите «pdb», сгенерированный ранее Resharper. – polkduran

+0

Чтобы использовать этот совет, вы должны выбрать _Show External Code_ в контекстном меню фрейма стека в окне _Call Stack_ в Visual Studio. – rgb

5

Выберите сборку в окне сборки проводника и нажмите кнопку Экспорт в Project на панели инструментов или выберите Экспорт в Project в контекстном меню.

Подробнее here

Кроме того, проверьте наличие этой конфигурации на главной странице отладки (Сервис -> Параметры -> Отладка -> Общие):

снимите флажок "Включить Just My Code" вариант

Снимите флажок «Включить .NET Framework источник шаговый» вариант

Отметьте опцию «Включить поддержку исходного сервера»

Снимите флажок «Требовать, чтобы исходные файлы соответствовали исходной версии

+1

После всех попыток эти настройки сделали это для меня, спасибо! –

Смежные вопросы