Отладка приложения Delphi в среде без разработки - PullRequest
8 голосов
/ 19 февраля 2009

Я пытаюсь использовать WinDBG или другой отладчик для отладки приложения CodeGear Delphi 2007 для Windows на удаленной машине. Мне не удалось создать файлы символов для WinDBG.

Есть ли способ использовать WinDBG или другой отладчик для отладки приложений Delphi в системе, не содержащей IDE?

Edit1

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

Edit2

Я могу удаленно подключиться к машине, но не могу подключить удаленный отладчик CodeGear из-за ограничений брандмауэра.

Ответы [ 7 ]

5 голосов
/ 19 февраля 2009

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

5 голосов
/ 19 февраля 2009

Как насчет удаленного отладчика? Создайте ваше приложение с помощью символов удаленной отладки и отладки с компьютера разработчика по сети.

4 голосов
/ 19 февраля 2009

Вы можете попробовать сгенерировать файл карты, а затем преобразовать его в файл dbg, используя map2dbg из http://code.google.com/p/map2dbg/

Затем вы можете загрузить файл dbg в WinDbg.

Отказ от ответственности: я столкнулся с подобной проблемой, но мне удалось выполнить удаленную отладку, и мне не пришлось делать все это. Поэтому я не уверен, что это сработает. Но если вы попробуете это, дайте нам знать, если это работает.

2 голосов
/ 20 февраля 2009

Боюсь, это еще один из тех ответов "У меня нет фактического ответа", но он может просто помочь ...

Рассматривали ли вы добавление регистрации в ваше приложение? Я слышал замечательные вещи о SmartInspect . С его помощью вы можете регистрировать все виды информации, включая следы стека и «наблюдения» (переменные).

Другим продуктом для ведения журнала для Delphi является EurekaLog .

1 голос
/ 19 февраля 2009

В Delphi вы можете использовать Run -> Attach to Process, выбрать удаленный компьютер и выбрать процесс, который вы хотите отладить.

0 голосов
/ 30 ноября 2015

http://sourceforge.net/projects/tds2dbg/ может использоваться для преобразования файлов отладки TDS Delphi в файлы DBG. Это дает основную информацию о символах - функции, классы, единицы, но не переменные. Достаточно для разумного стека вызовов и немного знаний, достаточно для отладки приложений Delphi в режиме реального времени и с дампами.

Я написал о некоторых впечатлениях от Delphi + WinDBG в моем блоге: https://marc.durdin.net/2015/11/windbg-and-delphi-a-collection-of-posts/

0 голосов
/ 20 февраля 2009

Спасибо всем за отличные предложения и интересные продукты.

Для решения этой конкретной проблемы "лучший" способ, который я нашел, использует OutputDebugString , расположенный в пространстве имен Windows . Это, наряду с Debug View от Sysinternals , позволит мне собрать отладочную информацию и довольно быстро разобраться в ней.

Если вы решите использовать этот метод, убедитесь, что все упаковано в формат ANSI. IE:

OutputDebugString(PAnsiChar(string1 + string2));

Это обеспечивает объединение строк1 и строк2, а затем их преобразование в символы ANSI.

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

...