Базовые файлы, когда символы разделяются

Я использую следующий псевдоним для него: alias ds='du -x --all --max-depth=1 . | sort -n'

Это печатает размеры всех файлов и 1-е подкаталоги уровня текущего dir.

2
10.06.2011, 00:38
1 ответ

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

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

От Дампа ядра страницы Wikipedia:

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

Таким образом, ответ на Ваш первый вопрос: нет, файлы дампа ядра мало полезны, если Вы снимаете символы от исполняемого файла.

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

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

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

4
27.01.2020, 22:01

Теги

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