Resharper отладка сторонней декомпилированной dll

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

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

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


person Noel    schedule 13.03.2012    source источник
comment
Вы уже смотрели параметры отладки Visual Studio (Инструменты- ›Параметры-› Отладка- ›Общие). Например. Включить только мой код (только управляемый) должен быть отключен.   -  person brgerner    schedule 13.03.2012
comment
ReSharper 6 имеет функцию автоматической декомпиляции: ‹< a href = "http://www.jetbrains.com/resharper/webhelp/Navigation_and_Search__Navigate_from_Here__Decompiled_Code.html" rel = "nofollow noreferrer"> jetbrains.com/helrespharper/webbrains.com/helrespharper/ a >› Возможно, этого декомпилированного исходного кода будет достаточно.   -  person brgerner    schedule 13.03.2012
comment
Пожалуйста, измените принятый ответ.   -  person live-love    schedule 21.09.2020


Ответы (7)


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

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

person Robbie    schedule 13.03.2012
comment
Вы можете декомпилировать библиотеки DLL с помощью dotPeek, а затем настроить сервер символов в VS. См. Эту статью medium.com/@jackspektor/ - person Jack Spektor; 10.05.2017

Да, вы можете с Resharper 9.0

(не уверен в предыдущих версиях).

Перейдите в меню ResharperWindowsAssembly Explorer

  • Добавьте туда сборку с помощью первой кнопки слева (со знаком +)
  • Затем щелкните его правой кнопкой мыши и выберите «Создать Pdb ...» (подождите, пока это будет сделано)
  • теперь вы можете взломать код.

Учтите, однако, как сказал Йенс, это, вероятно, нарушит условия лицензии.

person Fab    schedule 25.09.2015
comment
Я написал сообщение в блоге, в котором более подробно объясняется, как это сделать: blog.pglazkov.com/2016/02/ - person Pavlo Glazkov; 27.02.2016
comment
Если вы уже выполняете отладку, перейдите в раздел Отладка ›Windows› Модули. Выберите сборку, которую вы хотите отладить, и загрузите PDB, сгенерированный ранее Resharper. - person polkduran; 05.08.2016
comment
Чтобы использовать этот совет, вы должны выбрать Показать внешний код в контекстном меню фрейма стека в окне Стек вызовов в Visual Studio. - person rgb; 19.09.2017
comment
Если вы пытаетесь установить точку останова в декомпилированном исходном коде и получаете следующее предупреждение: Не удалось вставить точку останова в этом месте. поместите курсор мыши на имя функции и затем нажмите F9. - person rgb; 19.09.2017
comment
@rgb У меня были проблемы с точками останова, но они исчезли после установки флажка Подавить оптимизацию JIT при загрузке модуля (только управляемый) в Параметры- ›Отладка-› Общие, как рекомендовано в stackoverflow.com/a/32213614/342838 - person SlimShaggy; 17.10.2017

Средства отладки представлены в dotPeek 1.2, и вот хороший пост, описывающий, как настроить сервер символов и dotPeek 1.2 для отладки декомпилированного кода из VisualStudio: http://blog.jetbrains.com/dotnet/2014/04/09/introduction-dotpeek-1-2-early-access-program .

person Shkredov S.    schedule 18.04.2014

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

Дополнительная информация здесь

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

Снимите флажок "Включить только мой код".

Снимите флажок "Включить пошаговое выполнение исходного кода .NET Framework".

Установите флажок «Включить поддержку исходного сервера».

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

person Tomás Escamez    schedule 16.02.2016
comment
Попробовав все, эти настройки сделали это за меня, спасибо! - person Vincent Sels; 23.08.2016

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

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

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

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

person Lasse V. Karlsen    schedule 13.03.2012

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

person Skimedic    schedule 19.06.2013
comment
Это единственное, что у меня сработало. .Net Reflector приводил к сбою Visual Studio 2010, а Resharper позволял просматривать декомпилированный код, но не отлаживать через него. - person EricP; 07.02.2014
comment
Но это недешево :) - person Chris Phan; 15.09.2015

Вам потребуются соответствующие *.pdb файлы для перехода в код.

В противном случае может помочь декомпиляция двоичного файла, например, с помощью Свободно доступный JustDecompile от Telerik.

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

person Jens H    schedule 13.03.2012