Вообще говоря базовый файл является дампом всей памяти, используемой процессом плюс состояние регистров ЦП. Так, в целом информацией, которую можно получить из базового файла, является то же, что Вы могли добраться путем присоединения отладчика к процессу непосредственно перед тем, как это отказало.
От Дампа ядра страницы Wikipedia:
''В современных подобных Unix операционных системах администраторы и программисты могут считать файлы дампа ядра, пользующиеся библиотекой GNU Binutils Binary File Descriptor (BFD), [...] Эта библиотека снабдит необработанными данными для данного адреса в регионе памяти от дампа ядра; это ничего не знает о переменных или структурах данных в том регионе памяти, таким образом, приложение, пользующееся библиотекой для чтения дамп ядра, должно будет определить адреса переменных и определить расположение структур данных само, например, при помощи таблицы символов для отладки перенесения программы''.
Таким образом, ответ на Ваш первый вопрос: нет, файлы дампа ядра мало полезны, если Вы снимаете символы от исполняемого файла.
Однако символы просто поднимают некоторое дисковое пространство и иначе не влияют на производительность: можно скомпилировать с максимальной оптимизацией и
-g
одновременно.
Так как базовый файл является просто дампом памяти и состояния процессора, когда Ваше разрушенное приложение, общее предупреждение об оптимизации и отладке применяется: отладчик только найдет информацию (например, значение переменной или вызов функции в следе стека), если это не было оптимизировано.
Тип процессора (или имя) относится за тем, какая архитектура была сделана процессором.
Аппаратное название машины должно быть совместимо с типом процессора, другими словами, должен быть тот же тип как тип процессора.
И наконец, аппаратная платформа читает целые инструкции, которые аппаратные средства используют для процесса и который она musn't быть старшей версией, чем тип процессора.
Вы не можете выполнить i686 набор инструкций в i386 процессоре, например.
i686 отнесен в процессоры на 64 бита и архитектуру, но упомянут платформа, это означает обоих x686 или x86_64, упомянул канал инструкций (64 бита).
i386 = 32 бита
с помощью после опции можно дифференцироваться между этими тремя записями ("i686 i686 i386").
[root@tom i386]# uname -a
Linux tom 2.6.9-89.ELsmp #1 SMP Mon Apr 20 10:34:33 EDT 2009 i686 i686 i386
GNU/Linux
[root@tom i386]#uname -m; -->machine hardware name
i686
[root@tom i386]#uname -p; -->processor type
i686
and last one is hardware platform(i386).
Аппаратная платформа ( uname -i
) ==> Тип ОС. 32 бит или 64 бит.
Пусть приходит ситуация после установки пакетов и плагинов, необходимых для компиляции кода с 32-битной ОС, и теперь вы хотите изменить его в 64-битные ОС, может прийти проблема. Поэтому лучше удалить те 32-битные ОС зависимые плагины или остаться с 32-битной ОС.
Машина ( uname -m
) ===> Думайте как материнскую плату, в течение которого построен процессор.
Процессор ( Uname -P
) ==> Архитектура процессора зависит от набора инструкций.
Важная вещь:
Машина и процессор должны быть одинаковыми. Либо 32 бит или 64 бит, не отличается.
Аппаратная платформа должна быть такой же или ниже, чем машина и процессор.