WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

System.map — файл, внутри которого находится символьная таблица адресов функций и процедур, используемых ядром операционной системы Linux. В этой таблице перечислены имена переменных и функций и их адреса в памяти компьютера. Эта таблица весьма полезна при отладке ядра в случае Kernel panic или Linux oops. System.map генерируется при компиляции ядра.

Символьная таблица адресов для загруженного ядра также находится в файле /proc/kallsyms.

Создание файла

Файл System.map можно создать командой nm -n vmlinux > System.map. При компиляции ядра используется следующая команда (скрипт /usr/src/linux/scripts/mksysmap, версия ядра 2.6.35): $NM -n $1 | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2, где $1 — файл vmlinux, $2 — файл System.map.

Внутренности

Пример содержимого файла System.map:

c040f4ec b local_apic_timer_verify_ok
c040f4f0 b calibration_result
c040f4f4 b enabled_via_apicbase
c040f4f8 b apic_phys
c040f500 b apic_pm_state
c040f538 B nmi_active
c040f53c B nmi_watchdog_enabled
c040f540 B unknown_nmi_panic
c040f544 b backtrace_mask
c040f548 b lock.19318
c040f54c b nmi_pm_active
c040f550 b last_irq_sums
c040f560 b alert_counter

System.map создается при каждой сборке ядра ввиду того, что в разных версиях могут быть разные адреса процедур[1].

Типы символов

Вторая колонка обозначает тип символа (заглавные буквы означают глобальный или экспортируемый символ, строчные — локальный):

  • A — абсолютное значение.
  • B или b — символ в секции неинициализированных данных (обычно обозначается как BSS).
  • D или d — символ в секции инициализированных данных.
  • G или g — символ в секции инициализированных данных для глобальных малых объектов.
  • i — секция, специфичная для DLL.
  • N — отладочный символ.
  • p — секция раскрутки стека.
  • R или r — символ в секции с доступом только на чтение.
  • S или s — символ в секции неинициализированных данных для малых объектов.
  • T или t — символ в секции кода.
  • U — неопределённый символ.
  • V или v — слабый объект.
  • W или w — слабый объект, который не был так помечен
  • - означает символ заглушки в объектном файле a.out
  • ? означает неопределённый тип символа

Расположение на файловой системе

После сборки ядра Linux файл System.map находится в каталоге /usr/src/linux/. Однако некоторые программы требуют его в других местах и, иногда, с другим именем, например, /boot/System.map-$(uname -r). Так, например, для сборки SVGAlib необходимо наличие файла System.map в каталоге /lib/modules/$(uname -r)/build/[значимость факта?].

См. также

Примечания

Ссылки

  • Alavoor Vasudevan. The Linux Kernel HOWTO, System.map (англ.) (4 мая 2003). — Описание файла System.map. Проверено 20 сентября 2011.
  • System.map file (англ.). — Информация о символах, символьных таблицах и файле System.map. Проверено 20 сентября 2011. Архивировано 19 мая 2012 года.

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии