Компилировать в Code :: Blocks как в командной строке - PullRequest
2 голосов
/ 14 ноября 2011

Я пытаюсь протестировать программу для коллеги, которая не была написана в 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, как в командной строке?

1 Ответ

1 голос
/ 14 ноября 2011

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

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

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

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

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

...