Опция отладки GCC -dH - PullRequest
       1

Опция отладки GCC -dH

0 голосов
/ 27 апреля 2011

По этой ссылке: http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html

-dH Создавать дамп ядра при возникновении ошибки.

Итак, я скомпилировал программу с синтаксической ошибкой, и файл ядра был сгенерирован. Как этот основной файл можно использовать сейчас? GDB не может быть вызван, поскольку ни один исполняемый файл еще не сгенерирован.

[11:11:12 Wed Apr 27]
~/junk1  $ls
core  hell.c

[11:11:15 Wed Apr 27]
~/junk1  $gcc -g hell.c -dH
hell.c: In function ‘main’:
hell.c:4: error: expected ‘;’ before ‘}’ token
gcc: Internal error: Aborted (program cc1)
Please submit a full bug report.
See <http://bugs.opensuse.org/> for instructions.

[11:11:36 Wed Apr 27]
~/junk1  $ls
core  hell.c

[11:12:09 Wed Apr 27]
~/junk1  $gdb cc1 core
GNU gdb (GDB) SUSE (6.8.91.20090930-2.4)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-suse-linux".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
***cc1: No such file or directory.***
Missing separate debuginfo for the main executable file
Try: zypper install -C "debuginfo(build-id)=41f1efcceccfa5fa0b3476021c731c489547f86e"
Core was generated by `/usr/lib64/gcc/x86_64-suse-linux/4.4/cc1 -quiet hell.c -quiet -dumpbase hell.c'.
Program terminated with signal 6, Aborted.
#0  0x00007fb1b01654e5 in ?? ()
(gdb)

GDB говорит: cc1: в вышеприведенном выводе нет такого файла или каталога. Как я должен использовать этот основной файл?

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

gdb -c corefile должно работать. Мне не приходилось использовать опцию -dH, поэтому я не уверен, насколько она полезна при отладке.

1 голос
/ 27 апреля 2011

Я думаю, что ключ должен помочь отладке gcc , а не вашей программе.Страница , на которую вы ссылаетесь , начинается следующим образом:

3.9 Параметры отладки вашей программы или GCC
GCC имеет различные специальные параметры, которые используются дляотладка вашей программы или GCC :

Упор мой.

Программа cc1 является внутренней частью GCC, вероятно, она находится где-то под /usr/lib/ или /usr/libexec/.

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