Удаленная отладка Delphi 2010 - неспособность работать с контрольными точками

Недавно я опубликовал этот вопрос о моей неспособности заставить Delphi 2010 работать с удаленной отладкой. Я не имел никакого успеха и решил опубликовать простой пошаговый метод тестирования, который мог бы подсказать, что я делаю неправильно. ЭТО ДЕЙСТВИТЕЛЬНО ВАЖНО для меня - я использовал Delphi с V1.0 и зарабатываю себе на жизнь. Быть таким, как это, является болью и ее поддержанием на Delphi 7.

В любом случае, здесь идет.

  • Убедитесь, что в Delphi 2010 установлены обновления 4 и 5.

  • Запустите Delphi 2010, затем File | Новые | Приложение VCL Forms. Поместите кнопку в форму, поставьте 'ShowMessage (' hello ') в кнопку OnClick. Сохраните проект и его устройство в локальной папке "C:\scratch". Создайте проект, запустите его, нажмите кнопку, появится "привет", все отлично.

  • На сетевом компьютере (194.168.1.64) создайте новую папку "c:\DebugTest" и поделитесь ею с доступом к R/W.

  • В 194.168.1.64 установите удаленный отладчик из последней загрузки на веб-сайте Embarcadero (RemoteDebugger_upd2.exe). CLick rmtdbg140.exe для запуска. Примите сообщение "un-block" из брандмауэра.

  • Отредактируйте настройки компилятора конфигурации сборки DEBUG с помощью каталога вывода =\192.168.1.64\DebugTest и каталога выпуска модулей = c:\scratch - см. Compiler settings

  • Отредактируйте настройки связи, чтобы установить информацию об отладке = True, Включить удаленные символы отладки = True. См. Linking settings

  • Оставьте параметры компиляции по умолчанию. См. Compiling settings

  • Сделайте полную сборку. Соответствующие проекты exe 'project2.exe' и 'project2.rsm' отображаются в удаленной папке \192.168.1.64\DebugTest. Синие точки видны в Unit2 в среде IDE.

  • Установите точку останова на строке ShowMessage (кнопка OnClick).

  • Используйте 'Run' | "Загрузить процесс" с помощью Remote path = c:\DebugTest\Project2.exe, Remote Host = 192.168.1.64 и Рабочий каталог = c:\DebugTest см. Load Process remote tab

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

Я пробовал разные "очевидные" вещи, такие как брандмауэр, но все безрезультатно. Может ли какой-то человек предложить дальнейшие идеи?

Большое спасибо.

Ответ 2

Ну, для меня проблема теперь решена, но как "работа вокруг" и после значительного взаимодействия с Embarcadero и обновления до XE (что также не сработало).

Похоже, что удаленный отладчик является flaky (или, возможно, просто придирчивым) в своей способности загружать файлы rsm (удаленные символы) - они все еще ищут, почему моя загрузка не будет загружаться. Мой rsm файл большой размером около 50 Мб, хотя это не проблема для удаленного отладочного устройства Delphi 7.

Работа вокруг включала обновление до Delphi XE, а затем выбор опции компиляции "Разместить информацию отладки в отдельном файле TDS". Кажется, создается файл tds на удаленной цели вместо файла rsm, а точки останова работают нормально.

Я отправил свои файлы rsm и tds в Embarcadero для расследования того, почему это происходит.

Ответ 3

У меня была эта проблема. Установка обновления 4 для Delphi 2010 решила мою проблему. Он также указан в списке фиксированных проблем обновления 4.

Ответ 4

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