Легкий отладчик .NET? - PullRequest
       16

Легкий отладчик .NET?

24 голосов
/ 02 октября 2008

Мне часто нужно отлаживать двоичные файлы .NET на тестовых компьютерах (под тестовым компьютером я имею в виду, что на этом компьютере не установлена ​​Visual Studio, его часто перезаписывают, это не тот компьютер, на котором я работаю развитие и т. д.).

Мне нравится отладчик Visual Studio, но для меня нецелесообразно устанавливать визуальные студии на тестовом компьютере со свежим образом, просто для отладки утверждения или сбоя (установка занимает слишком много времени, занимаемая площадь слишком велика и т. Д.) ,

Мне бы очень хотелось быстро установить программу, которая могла бы прерваться в работающий процесс, дать мне возможность указать расположение символов / исходного кода и сразу перейти к отладке. Для родных двоичных файлов windbg прекрасно работает, но я не нашел ничего похожего на управляемые двоичные файлы. Любые рекомендации?

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

Ответы [ 8 ]

9 голосов
/ 17 октября 2008

Для более приятного интерфейса, чем MDbg или cordbg, взгляните на DbgCLR - урезанную версию отладчика Visual Studio (по крайней мере, на один), которая обрабатывает только управляемый код. Он поставляется с .NET Framework (я не уверен, что он во время выполнения или вам нужен Framework SDK):

Обратите внимание, что cordbg устарела в пользу MDbg (даже несмотря на то, что MDbg не обладает всеми функциями cordbg):

И, оглядываясь назад на MDbg при написании этого поста, я обнаружил, что для MDbg доступна оболочка с графическим интерфейсом (которую я еще не пробовал):

5 голосов
/ 09 февраля 2011

Я наконец-то нашел расширения для Windbg, которые делают именно то, что я хотел: Sosex.dll , позволяет мне использовать windbg для отладки управляемых приложений с минимальной необходимой установкой. Я использовал его больше года, и он работал безошибочно для каждого сценария отладки, с которым я столкнулся.

4 голосов
/ 02 октября 2008

Всегда есть mdbg и cordbg , но я бы посоветовал разобраться, почему удаленная отладка не работает последовательно.

VS2005 / 8 кажутся намного более надежными, чем более ранние версии здесь (хотя я в основном неуправляемый), и это избавляет вас от необходимости иметь символы, доступные на целевой машине.

3 голосов
/ 08 сентября 2018

Использование dnSpy .

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

Это так замечательно. Очень маленький и легкий. Не требуется установка или настройка. Его интерфейс точно так же, как Visual Studio. Даже его ярлыки такие же, как у VS.

Особенности:

Отладчик

  • Отладка игровых сборок .NET Framework, .NET Core и Unity, исходный код не требуется
  • Установите точки останова и перейдите к любой сборке
  • местные жители, часы, авто windows
  • Окно переменных поддерживает сохранение переменных (например, расшифрованных байтовых массивов) на диск или просмотр их в шестнадцатеричном редакторе (окно памяти)
  • Идентификаторы объектов
  • Несколько процессов могут быть отлажены одновременно
  • Перерыв при загрузке модуля
  • Точки трассы и условные точки останова
  • Экспорт / импорт точек останова и трассировки
  • Стек вызовов, потоки, модули, процессы windows
  • Перерыв на выброшенные исключения (1-й шанс)
  • Окна переменных поддерживают оценку выражений C # / Visual Basic
  • Динамические модули можно отлаживать (но не динамические методы из-за ограничений CLR)
  • Окно вывода регистрирует различные события отладки и по умолчанию показывает временные метки:)
  • Сборки, которые расшифровывают себя во время выполнения, могут быть отлажены, dnSpy будет использовать образ в памяти. Вы также можете заставить dnSpy всегда использовать образы в памяти вместо файлов на диске.
  • Открытый API, вы можете написать расширение или использовать интерактивное окно C # для управления отладчиком

Редактор сборок

  • Все метаданные можно редактировать
  • Редактирование методов и классов в C # или Visual Basic с IntelliSense, исходный код не требуется
  • Добавление новых методов, классов или членов в C # или Visual Basic
  • Редактор IL для низкоуровневого редактирования тела метода IL
  • Таблицы метаданных низкого уровня можно редактировать. Это использует редактор hex внутри.

Hex Editor

  • Нажмите на адрес в декомпилированном коде, чтобы перейти к его IL-коду в шестнадцатеричном редакторе
  • В обратном порядке нажмите F12 в теле IL в шестнадцатеричном редакторе, чтобы перейти к декомпилированному коду или другому высокоуровневому представлению битов. Замечательно узнать, какое утверждение изменил патч.
  • Выделяет структуры метаданных .NET и структуры PE
  • Всплывающие подсказки показывают дополнительную информацию о выбранном поле метаданных .NET / PE
  • Перейти к позиции, файл, RVA
  • Перейти к токену метаданных .NET, телу метода, смещению кучи #Blob / #Strings / #US или коду #GUID
  • Следовать по ссылкам (Ctrl + F12)

Другое

  • BAML декомпилятор
  • Синие, светлые и темные темы (и темная высококонтрастная тема)
  • Закладки
  • C # Интерактивное окно может использоваться для сценария dnSpy
  • Поиск сборок для классов, методов, строк и т. Д.
  • Анализ использования класса и метода, поиск вызывающих и т. Д.
  • Несколько вкладок и групп вкладок
  • Ссылки выделены, используйте Tab / Shift + Tab для перехода к следующей ссылке
  • Перейти к точке входа и командам инициализатора модуля
  • Перейти к командам токена метаданных или строки метаданных
  • Подсказки по коду (C # и Visual Basic)
  • Экспорт в проект
3 голосов
/ 04 августа 2011

Версия 2 ILSpy содержит отладчик. И это работает потрясающе!

Это все еще на очень ранних стадиях, но помогло мне несколько раз.

Просто следите за ошибками! :)

1 голос
/ 16 апреля 2011

Вы пробовали использовать Cracked.NET ?

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

1 голос
/ 02 октября 2008

Вы можете проверить MDbg: http://blogs.msdn.com/jmstall/archive/2006/11/22/mdbg-sample-2-1.aspx. Похоже, что он поставляется как минимум с .NET 3.5 SDK (и он, вероятно, включен с 2.0 +).

Windbg имеет управляемые расширения (я считаю, что это SOS), хотя я не знаю, позволяют ли они отладку на уровне исходного кода.

0 голосов
/ 28 апреля 2014

Может быть, вы можете попробовать Live Tuning в сочетании с Ocf Server ?

Это не отладчик как таковой, но довольно просто установить связь между приложением и Live Tuning. Мол, буквально 3 строки кода. Затем у вас есть доступ ко всем переменным, которые вы хотите опубликовать.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...