Как использовать Deblector?

Я работаю с сторонней структурой, и код довольно плохой, и я получаю исключения, которые я не могу понять. Мне удалось декомпилировать с помощью .NET Reflector, и теперь я пытаюсь отлаживать с помощью Deblector, но я даже не могу понять, как получить набор точек останова. Почему нет документации для этого инструмента?

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

Я давно искал Google, и все, что я могу найти, это блоги, говорящие, насколько замечателен этот инструмент. Ну, я уверен, что было бы здорово, если бы я мог заставить его работать. Где находится документация или как установить контрольную точку?

Я могу заставить его подключиться к моему процессу, но я не могу сделать паузу или что-то еще, и это не прерывается, когда происходит исключение, хотя я активировал эту опцию.

Серьезно... мы должны сделать некоторую документацию - я отправлю их где-нибудь, что Google может достичь.

Ответ 1

Возможно, это поможет вам:

Прежде всего, я использую DeblectorAddin-1.01-Alpha из (я не знаю, работает ли это так в старых версиях тоже) из http://www.codeplex.com/deblector.

С этой версией это довольно просто со следующей процедурой:

  • Присоединить к процессу

    • С помощью команды a [ttach] в командной строке: a <pid> .
    • Используя кнопку attach на панели инструментов (окно с шестеркой в ​​нем).
  • Если приложение было успешным (вы видите это на консоли, активированной с помощью Tools- > Deblector), все загружаемые сборки должны быть загружены.

  • Установка точки останова (вы должны остановить программу, чтобы установить точку останова):

    • Использование команды b [reak]: например. b < Namespace.Class.Function > - доступно больше доступных опций help b.
    • Намного проще: используйте кнопку "Разрыв" (или F9) и выберите строку в окне Debuger IL.

Дополнительные примечания по использованию:

Командная строка дебютатора:
Командная строка не ответит, если вы в настоящее время подключены к процессу и выполняете его, вы должны сначала остановиться, или он не будет правильно отвечать.

Для 64-разрядных платформ:
Приложение должно быть настроено на запуск как 32-битное приложение или его нельзя привязать.

В Visual Studio: Project → Свойства → Платформа сборки платформы: x86

С инструментом corflags: это должно быть установлено с помощью Visual Studio (используйте командную строку Visual Studio).

 To set 32-bit mode: corflags <ProgramName> /32BIT+ 
 To unset it:        corflags <ProgramName> /32BIT-

Чтобы найти идентификатор процесса и проверить, работает ли программа в 32- или 64-разрядном режиме:
Process Explorer очень полезен для этого.

Ответ 2

Теперь Reflector Pro теперь делает это. Он декомпилирует управляемые сборки в С# или VB.NET и создает необходимые PDB. Затем вы можете установить точки останова и войти в любую управляемую сборку, которая вам нравится.

http://www.red-gate.com/products/reflector/walkthrough.htm