Отладка приложения Delphi в Wine

У меня есть приложение Delphi для Windows, которое ужасно умирает под Wine - даже не доходит до создания основной формы. Перенос на Free Pascal невозможен по разным причинам.

Могу ли я отлаживать под Wine, используя родные средства Delphi? Если нет, могу ли я выполнять отладку под Wine с помощью gdb, и если да, то как передать отладочную информацию в формате Delphi (вероятно, с помощью Turbo Debugger) в gdb?

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

Я не писал приложение, но у меня есть исходники и копия Delphi.


person Seva Alekseyev    schedule 06.01.2010    source источник


Ответы (3)


Я считаю, что вы должны иметь возможность отлаживать с помощью gdb, но я не знаю, как вы могли бы передать ему все исходные коды Delphi. Однако для начала вам потребуется включить всю отладочную информацию в ваш EXE-файл (включая внешний отладчик).

Я бы порекомендовал вам получить утилиту ведения журнала, которая поддерживает ведение журнала через TCP/IP. Два хороших — это SmartInspect и CodeSite. Объедините их с утилитой трассировки стека, такой как JCL, и вы можете обнаружить, что это лучшее решение, чем в любом случае подключите отладчик.

Удачи в обнаружении Wine. Мне было бы любопытно посмотреть, что вы придумали. Хотя кажется, что это должно быть возможно.

person Jim McKeeth    schedule 06.01.2010

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

Первое, что я бы попробовал, это использовать утилиту трассировки стека, такую ​​как расширения отладки JCL. Трассировка стека может дать вам достаточно информации для решения проблемы без необходимости запуска отладки в Linux.

person Craig Stuntz    schedule 06.01.2010
comment
Это мало чем отличается от отладки прошлых веков на основе printf() :) Что является вариантом, я признаю. Просто не из приятных. - person Seva Alekseyev; 07.01.2010
comment
Как средство отладки, да. Как способ получения вскрытий от клиентов или других случаев, которые трудно воспроизвести, это бесценно. - person Craig Stuntz; 07.01.2010
comment
Прямо сейчас мои амбиции более скромны - было бы достаточно заставить эту чертову штуку запускаться и показывать главное окно. :) И приложение бесплатное, поэтому строгая поддержка клиентов не входит в мои планы. И все же спасибо за ссылку. - person Seva Alekseyev; 07.01.2010

Если у вас есть исходный код, перекомпилируйте его с кучей отладочных сообщений и попробуйте запустить его, как в Windows.

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

У меня была аналогичная проблема с использованием вина с нашим приложением Delphi, мне нужно было установить диспетчер ODBC, который не входит по умолчанию, прежде чем я смог заставить его работать.

person Peter Turner    schedule 08.01.2010
comment
О, я прочитал ваш комментарий, и вы не слишком увлечены отладкой printf, да ладно. Вероятно, только 1 или 2 вещи препятствуют инициализации вашего программного обеспечения, поэтому, вероятно, оно того стоит. - person Peter Turner; 08.01.2010
comment
Что ж, если нет лучшего варианта, то есть printf(). Я просто надеялся, что у коллективной мудрости StackOverflow есть лучшее решение. - person Seva Alekseyev; 08.01.2010