Linux параметры компилятора GCC

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

У Вас было бы 4 комбинации для запоминания:

C-style:
,* comment  
,c uncomment

HTML style: 
,< comment 
,d uncomment

2
04.02.2013, 22:14
3 ответа

Заключить в кавычки из руководства: Produce debugging information in the operating system's native format (stabs, COFF, XCOFF, or DWARF 2). GDB can work with this debugging information. . Я не означаю быть прочитайте руководство, парень, но в этом случае, читая ручной раздел по-g ответит на Ваш вопрос. Согласно-o, Вы правы.

4
27.01.2020, 21:53
  • 1
    , это ответило на мой вопрос. И я сожалею о не взгляде в руководстве, я просто забыл об этом - Все еще новичок :) –  arielschon12 04.02.2013, 22:16

- g опция включает использование дополнительной отладочной информации, которую может использовать GDB. Вот пример кода C:

int main() {
    int x = 1/0;    
}

давайте скомпилируем его без-g опции и посмотрим вывод gdb:

$ gcc test.c -o test
test.c: In function ‘main’:
test.c:2:11: warning: division by zero [-Wdiv-by-zero]
$ gdb -q ./test
Reading symbols from /home/mariusz/Dokumenty/Projekty/Testy/test...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/mariusz/Dokumenty/Projekty/Testy/test 

Program received signal SIGFPE, Arithmetic exception.
0x080483cb in main ()

И теперь с-g опцией:

$ gcc -g test.c -o test
test.c: In function ‘main’:
test.c:2:11: warning: division by zero [-Wdiv-by-zero]
$ gdb -q ./test
Reading symbols from /home/mariusz/Dokumenty/Projekty/Testy/test...done.
(gdb) run
Starting program: /home/mariusz/Dokumenty/Projekty/Testy/test 

Program received signal SIGFPE, Arithmetic exception.
0x080483cb in main () at test.c:2
2       int x = 1/0;    

Как Вы видите, теперь существует информация о строке с ошибкой.

3
27.01.2020, 21:53

Это связано с отладкой:

(от man gcc)

- g Производят отладочную информацию в собственном формате операционной системы (удары, COFF, XCOFF, или ЗАТМИТЕ 2). GDB может работать с этой отладочной информацией.

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

(gdb) break 6
No symbol table is loaded.

Это - большая стычка.

0
27.01.2020, 21:53

Теги

Похожие вопросы