2012-03-29 4 views
0

Я промежуточный программист С, который изучает свой путь. Недавно я научился использовать GDB (вынужденный на самом деле), а также делаю код с помощью Ptrace.
Я просматривал какой-то код на ptrace и наткнулся на «DEBUG INFO».Что такое Debug Info?

Я хочу знать, что это значит и когда я должен включать это в свой код?
Что такое файлы информации об отладке?

Я не мог найти много от google и wiki, связанных с этим. Для этого тега тоже нет вики. Может быть, если вы можете указать мне в правильном направлении, я могу отплатить, написав один.

+0

Я скачал 'strace' код из [здесь] (http://sourceforge.net/projects/strace/files/strace/), но вмятина найти' DEBUG INFO' в 'strace.c'. В каком файле вы ссылаетесь? Можете ли вы вставить фрагмент здесь? –

+0

@PavanManjunath: Извините. Это не было. Это была ошибка. Простите за то, что тратили свое время на это. Я ищу тот код, который имел это. Пожалуйста, дай мне время. –

ответ

2

DEBUG_INFO Вы имеете в виду, вероятно, просто вариант (и определение) ядра linux. Включение этого при настройке ядра говорит компилятору, чтобы он включал отладочную информацию в результирующий двоичный файл. Эта отладочная информация сама по себе является лишь дополнительными данными, которые позволяют отладчикам (и другим инструментам, таким как strace, addr2line, gprof, ...) относиться к двоичному коду, который он выполняет для источника, из которого он был скомпилирован (исходные строки, имена переменных и т. Д. И т. Д.). Вы можете найти более подробную информацию об отладочной информации вообще, начиная с DWARF (популярный формат данных отладки).

+0

Я написал собственный ответ, который никуда не приближается :) спасибо и принимаю :) +1! –

1

проверьте на what is a core dump. Вы можете получить некоторые указания.

+0

Было бы неплохо процитировать соответствующий фрагмент здесь – nico

+0

@peter: я не получил ответа там, но я узнал немало интересных фактов. Спасибо man :) –

+0

@peter: Я хочу опубликовать другой ответ с большим количеством ссылок, но хочу также разместить ваш пример. Это будет угон? –

0

Весь кредит принадлежит Питеру за ответ. Изначально я прошел через «What is core dump»
Потом я наткнулся на следующую link, который фактически говорит разницу между

  1. отладочных
  2. релиз построить

    который: отладочная сборка включает в себя отладочную информацию во время в выпуске нет этих и оптимизирован код. Также этот answer может помочь вам получить дополнительную информацию.