У меня есть Приложение Windows Delphi, которое умирает ужасно под Вином - даже не добирается до создания основной формы. Портирование на Свободного Паскаля не является опцией по различным причинам.
Я могу отладить под Вином с помощью собственных средств Delphi? В противном случае я могу отладить под Вином с помощью gdb, и если так, как я подаю информацию об отладке в формате Delphi (Turbo Debugger, вероятно) к gdb?
Наконец, как я могу обнаружить Вино из программы? Вино FAQ говорит, что я не должен, но я не думаю, что фиксация моего приложения высока в Винном списке приоритетов парней, таким образом, я взял бы вопросы в свои руки.
Я не записал приложение, но у меня есть источники и копия Delphi.
Вы могли бы заставить удаленный отладчик подключиться к приложению Wine (никогда не пробовал), но это требует много Wine.
Первое, что я бы попробовал, это использовать утилиту трассировки стека, такую как JCL отладочные расширения. Трассировка стека может дать достаточно информации для исправления проблемы без отладки под Linux.
Я верю, что вы должны быть в состоянии отладить с gdb , но я не знаю, как вы бы скормили ему все дельфийские источники. Однако, чтобы начать, вам нужно будет включить всю отладочную информацию в ваш EXE (включая внешний отладчик).
Я бы порекомендовал вам получить утилиту протоколирования, которая поддерживает протоколирование по TCP/IP. Двумя хорошими утилитами являются SmartInspect и CodeSite. Объедините их с утилитой трассировки стека, такой как JCL, и вы, возможно, найдете лучшее решение, чем подключение отладчика в любом случае.
(источник: raize.com)
(источник: gurock.com)
Удачи в обнаружении Wine. Мне было бы любопытно посмотреть, что вы придумали. Похоже, это должно быть возможно.
Если у вас есть исходный код, перекомпилируйте его, добавив кучу отладочных сообщений, и попробуйте запустить его, как в Windows.
Wine имеет множество API, которые остались нереализованными, и вам может повезти, если вы установите дополнительные пакеты наугад с помощью winetricks.
У меня была аналогичная проблема с использованием Wine с нашим приложением Delphi. Мне нужно было установить диспетчер ODBC, который не входит по умолчанию, прежде чем я смог заставить его работать.