Rambler's Top100
ГлавнаяО себеФоткиРазбиралкиМарафон
Карта
Некоторые полезные штуки облегчающие жизнь при разработке программ.

Некоторые полезные штуки облегчающие жизнь при разработке программ.

Синтаксические ошибки, которые скрывают от нас макроопределения.

Иной раз трудо бывает отловить ошибки допущенные в определении макросов препроцессора. Попробуйте:

gcc -E <исходник> -I<там где искать наши хедеры> | less

На выходе получим наш "<исходник>" обработанный препроцессором с развернутыми в нем всеми макрами из хедеров найденных по стандартным путям и хедеров из "<там где искать наши хедеры>". Задача поиска блох упростится.

Где GDB находит исходники?

Когда GDB'е требуются исходники, он ищет их вначале в своем внутреннем списке директорий исходников (source path), затем, в случае неудачи, пробует директорию компиляции (если в нем есть соответствующая запись). Последней возможностью является текущая рабочая директория GDB. Следующие команды позволяют манипулировать списком директорий исходников:

  • directory DIRNAME ... (или dir DIRNAME ...) - добавляет новую директорию в начало списка, если данная директория уже присутствует, она сдвигается в начало. При добавлении нескольких директорий разделителем является двоеточие;
  • directory - опустошает список;
  • show directories - выводит весь список.

Изучение процессов с имеющимися в них fork'ами

При изучении поведения таких процессов сталкиваемся с той проблемой, что отладчик после выполнения fork продолжает отлаживать родительский процесс. Специальных средств для обхода такой ситуации не нашлось. Однако, в мане можно найти такой совет:

Допустим, имеем процесс aaa, который посредством fork делится на родительский и дочерний. Находим в исходнике программы точку ветвления и вставляем в тело дочернего кода sleep(). Компилируемом. Теперь, после прохождении точки ветвления дочерний процесс засыпает, и у нас есть время выполнить команду ps и таким образом определить его PID (пусть он оказался 1234) и, за тем, говорим в среде gdb:

(gdb) attach 1234

Ву-аля! Мы перецепились к дочернему процесс, и можем теперь отлаживать его на здоровье!

Hosted by uCoz
Смотри еще:
ГлавнаяО себеФоткиРазбиралкиМарафон
Карта

Обратная связь: otokarev@ngs.ru

Rambler's Top100

Hosted by uCoz