Кросс-отладочное приложение Windows на Linux box в Eclipse CDT - PullRequest
9 голосов
/ 30 июля 2009

Я перешел с Windows на Ubuntu Linux, и теперь я хочу настроить среду разработки здесь. Проблема в том, что мне нужно

  1. C / C ++ IDE сопоставим с Visual Studio
  2. Способ создания двоичных файлов Windows PE
  3. Способ отладки двоичных файлов Windows PE

Сначала я попробовал Code :: Blocks. Здесь Я нахожу руководство по настройке для кросс-разработки, поэтому мне удалось скомпилировать и запустить "Hello World" под Wine. Более того, отладка тоже сработала.

Но потом я обнаружил, что плагин Eclipse + CDT является гораздо более продвинутой IDE. Я потратил некоторое время и наконец получил проект, скомпилированный и связанный.

Теперь я пытаюсь заставить версию GDB MinGW Insight работать в Eclipse CDT. Простой способ использовать отладчик, описанный в руководстве Code :: Blocks, больше не будет работать. Я продолжаю получать сообщения «Ошибка создания сеанса».

Итак, мой вопрос: как я могу использовать MinGW GDB под Wine в качестве бэкэнда отладчика в Eclipse? Или что лучше IDE для Linux-> Windows кросс-разработки?

Ответы [ 3 ]

3 голосов
/ 15 августа 2014

Мне интересно, что никто еще не ответил на это.

  1. QtCreator. Не смущайтесь его именем, QtCreator отлично работает с любым кодом C ++, вам не нужно кодировать в Qt, чтобы использовать его. Это похоже на FOSS Visual Studio: в нем даже есть проверка синтаксиса "на лету".

  2. MinGW. Здесь особо нечего сказать, он просто создает исполняемые файлы Win PE и работает. Доступен в репозиториях. Обратите внимание, что приложения Win GUI имеют специальный бит в своем наборе PE-заголовков; поэтому, чтобы создать приложение с графическим интерфейсом с MinGW, вам нужно передать опцию -mwindows для установки этого бита.

  3. Это проблема. На самом деле: я просто пытаюсь отладить приложение Windows, и пока не нашел способ сделать это. Я кратко напомню здесь то, что я пытался до сих пор, просто чтобы вы не наступали на мои грабли:

    • winedbg . Возможно, это должно сработать, но для меня это не сработало. Когда я устанавливаю точку останова, например, br 43, он говорит Unable to add breakpoint (unknown address 7b860807).

    • winedbg . Да, опять же, но на этот раз мы будем использовать это как winedbg --gbd, чтобы заставить его проксировать команды до gdb. Возможно, это единственный способ отладки приложения, но у него есть недостатки: во-первых, чтобы перезапустить приложение, необходимо выйти из отладчика; если вы введете run, это говорит о том, что удаленная цель не поддерживает это. Во-вторых, я даже не представляю, как отлаживать многопоточное приложение; когда я впервые начал это, я наткнулся на ошибку Non-stop mode requested, but remote does not support non-stop, и после установки точки останова и запуска она говорит: Cannot insert breakpoint 1. и Cannot access memory at address 0x401654. Итак, чтобы сделать эту работу, мне нужно было переименовать мой .gdbinit файл (т.е. там установлен безостановочный режим) .

    • gdb.exe . Я был уверен, что нашел способ: простое использование версии Windows gdb должно решить проблемы; Более того, для меня, как для парня из Emacs, это было бы абсолютно так же, как отладка с помощью родного gdb. Но, увы, Windows GDB просто не работал. Если я запускаю его и ввожу любую команду, он просто ничего не делает. Он реагирует только на команды Ctrl-c и Ctrl-z . Возможно, я попробую в свободное время задать вопрос об этом в списке рассылки. Ну, теперь мы не можем его использовать ...

Так что же нам делать с отладкой? Скорее всего, искать другой отладчик Windows, который работает под WINE . Если я правильно помню, OllyDbg работал, но я не знаю, как заставить его показывать исходный код.

0 голосов
/ 15 августа 2014

Запустить Windows на ВМ?

Серьезно, ваш вопрос хороший, но, вероятно, не стоит тратить время на то, чтобы выяснить ответ (особенно: поскольку никто, кажется, не имеет готового ответа). Если у вас есть реальная работа, ответом будет Windows или Windows на виртуальной машине.

0 голосов
/ 03 декабря 2012

вы можете попробовать NetBeans . Это хороший бесплатный, с открытым исходным кодом и кроссплатформенная поддержка IDE.

...