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

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

11 голосов
/ 23 января 2009

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

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

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

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

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

Ответы [ 2 ]

8 голосов
/ 18 апреля 2009

Может быть, это вам поможет:

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

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

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

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

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

    • Использование команды b [reak] : например, b - доступно больше опций, для этого используйте help b .
    • Намного проще: используйте кнопку Break (или F9 ) и выберите строку в представлении Deblector IL .

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

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

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

В Visual Studio: Проект -> Свойства -> Цель платформы сборки: x86

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

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

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

0 голосов
/ 05 июля 2010

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

http://www.red -gate.com / products / рефлектор / walkthrough.htm

...