Основные файлы, когда символы удаляются

Я создаю приложение с помощью g ++ 4.3. Я использую максимально возможный уровень оптимизации, не используя параметр -g , и я удаляю символы после сборки.

Если я НЕ снимаю символы из своего приложения и библиотек, являются ли основные файлы полезными? (Когда они генерируются при сбое приложения.)

Будут ли файлы ядра полезными, если я скомпилирую мое приложение с максимально возможной оптимизацией? (Без опции -g и без снятия символов.)

  • Переключение между общими буферами в режиме emacs gdb без мыши (в текстовом терминале)
  • Установка gcc на rhel 6.1
  • make : *** Ошибка 2 make : *** Ошибка 2
  • Как обеспечить crt1.o и crti.o для LFS?
  • gcc ошибка установки пакета psycopg2 для python3 на Centos 7.3
  • Каков самый быстрый способ установки GCC на Wind River 3.02?
  • Компиляция bzip1 на малине pi 2 с сервером debian?
  • файлы заголовков списка, используемые проектом, скомпилированным с gcc, вместе с иерархией
  • One Solution collect form web for “Основные файлы, когда символы удаляются”

    В общем случае основной файл представляет собой дамп всей памяти, используемой процессом, а также состояние регистров процессора. Таким образом, в общем, информация, которую вы можете получить из основного файла, такая же, как вы могли бы получить, подключив отладчик к процессу непосредственно перед его сбоем.

    Если я не снимаю символы из своего приложения и библиотек, все еще полезны основные файлы?

    Материал из Википедии:

    “ В современных Unix-подобных операционных системах администраторы и программисты могут читать файлы дампа ядра с помощью библиотеки двоичных файлов GNU Binutils (BFD), […] Эта библиотека будет поставлять необработанные данные для заданного адреса в области памяти от дампа сердечника; он ничего не знает о переменных или структурах данных в этой области памяти, поэтому приложение, использующее библиотеку для чтения дампа ядра, должно будет определять адреса переменных и определять компоновку самих структур данных, например, используя таблицу символов для программы, выполняющей отладку. ''

    Поэтому ответ на ваш первый вопрос: no, core dump files мало полезны, если вы отделяете символы от исполняемого файла.

    Однако символы просто занимают некоторое дисковое пространство и не влияют на производительность в целом: вы можете скомпилировать с максимальной оптимизацией и -g одновременно.

    Будут ли файлы ядра полезными, если я скомпилирую мое приложение с максимально возможной оптимизацией?

    Поскольку основной файл представляет собой только дамп памяти и состояния процессора при сбое приложения, применяется общее предупреждение об оптимизации и отладке: отладчик будет находить информацию (например, значение переменной или вызов функции в stack backtrace), если он не был оптимизирован.

    Linux и Unix - лучшая ОС в мире.