Eclipse C ++ перерывы отладки в STL - PullRequest
2 голосов
/ 04 марта 2009

Я новичок в отладке с Eclipse.

Я пытаюсь отладить приложение, чтобы узнать, где оно происходит.

Проблема в том, что Eclipse разрывается внутри STL, что очень раздражает.

Например: я создал точку останова в исходном файле в строке 134, которая отлично работает но если я нажму F6 для «Step Over», Eclipse / GDB разрывается в конструкторе basic_string, используемом в следующей строке с std :: cout.

Есть намеки на это? Есть ли опция конфигурации для Eclipse или такая?

Ответы [ 5 ]

1 голос
/ 04 марта 2009

Может быть, именно в этом и заключается segfaults?

0 голосов
/ 05 марта 2009

У меня была похожая проблема. Речь идет о встроенных функциях (которые stl cuases).

Вам нужно добавить несколько флагов компилятора для генерации дополнительной отладочной информации. Если вы используете gcc, смотрите -g * flags (-ggdb для соответствия отладчику gdb, это дает вам наиболее достойную поддержку для этих типов отладчиков).

Также вы можете отключить оптимизацию.

P.s. Я не был достаточно ясен: это не ошибка Eclipse, это ошибка компилятора / отладчика.

0 голосов
/ 05 марта 2009

Учитывая ограниченную информацию, это то, что приходит на ум,

  1. Шаг в (F5) вместо переступая (F6), чтобы найти где это происходит.
  2. Если это так не работает, обновите CDT до последней версия и попробуйте еще раз.
  3. Если это тоже не работает, попробуйте использовать GDB без затмения.
  4. Последний вариант, киньте в кучу выводов cerr. Примечание cerr (который не буферизуется) не соиЬ.

Если ничего из этого не работает, напишите более подробную информацию.

0 голосов
/ 04 марта 2009

если код оптимизирован, он может сломаться в stl. Попробуйте скомпилировать в режиме отладки, и это может помочь.

0 голосов
/ 04 марта 2009

Я не использовал Eclipse, но я уверен, что существует представление «обратная трассировка стека» или «стек вызовов», которое можно использовать для просмотра цепочки вызовов, которая оказалась в коде STL.

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