Компилировать в Code::Blocks как в командной строке

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

Мне пришла в голову блестящая идея скомпилировать и запустить код в Code::Blocks (поскольку мы запускаем его в Ubuntu), чтобы мы могли наблюдать, что он делает внутри во время работы. Код компилируется, когда вы вводите:

g++ fe_cmd_arg2_new.c -pthread K_drv_21.cc urg_drv_425.cc o_structures.c ri,cc star_cam_374.cpp com_Unit.o

но не тогда, когда он скомпилирован в Code::Blocks. Как мне скомпилировать в Code::Blocks, как в командной строке?


person Tubbs    schedule 14.11.2011    source источник
comment
Вы уверены, что разместили правильную инструкцию командной строки? Кажется, у вас там n файлов program.cc.   -  person Alok Save    schedule 14.11.2011
comment
это просто для того, чтобы вещи были универсальными. каждый является отдельным фрагментом кода.   -  person Tubbs    schedule 14.11.2011
comment
Пожалуйста, опубликуйте свои фактические инструкции, ваша попытка упростить вещи просто еще больше усложняет их. Общее программирование хорошо, а не общие вопросы. Ваш вопрос конкретен, поэтому будьте конкретны.   -  person Alok Save    schedule 14.11.2011


Ответы (1)


Упс, пропустил главный вопрос: как бы вы скомпилировали блоки исходного кода. Вероятно, это просто добавление -g для создания отладочных символов плюс, вероятно, -O2 для оптимизации кода. Но если вы занимаетесь отладкой, может помочь отключить переключатель оптимизации.

Однако, если вы не сможете выполнять отладку в среде IDE, вы можете попробовать отладчик gdb:

  • добавьте -g в свою строку компиляции, чтобы встроить символы отладки (если вы компилируете и связываете отдельно, то ко всем строкам, включая строку ссылки)
  • запустить программу через gdb

    gdb ./a.out
    run <command line args>
    

К сожалению, gdb работает из командной строки, и к нему трудно подобраться, но вы должны попробовать bt распечатать трассировку стека, затем вы можете print <var> вывести состояние и т. д.

person Rup    schedule 14.11.2011
comment
Хорошо, попробуем gdb. Единственная проблема заключается в том, удастся ли нам выяснить, как все использовать. Спасибо за идею! - person Tubbs; 14.11.2011