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

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

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

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

One Solution collect form web for “Основные файлы, когда символы удаляются”

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

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

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

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

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

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

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

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

  • Оптимизирует ли размер для уменьшения использования памяти во время выполнения, а также двоичный размер?
  • Неустранимая ошибка: нет компиляции в поддержку x86_64
  • Где GCC-5 после установки на Solaris 11?
  • Почему мой stdbool.h не входит в / usr / include?
  • Как выполнить двоичный файл, присутствующий в другом каталоге?
  • Случайное удаление dev-libs / mpc из Gentoo
  • Как перекомпилировать пакет Debian с -O?
  • Как скомпилировать C-код с библиотекой «Unix network book book»?
  • Перекомпилируйте gcc со встроенной версией
  • Поддержание единой бинарной системы в дистрибутивах Debian
  • Как установить g ++ 4.8 для установки по умолчанию после установки?
  • Узнайте варианты компиляции glibc
  • Linux и Unix - лучшая ОС в мире.