System.map
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
Друга колонка позначає тип символу (великі літери означають глобальний або експортований символ, малі - локальний):
- A — абсолютне значення.
- B — символ у секції неініціалізованих даних.
- D — символ у секції ініціалізованих даних.
- N — налагоджувальний символ.
- R — символ у секції ініціалізованих даних
ReadOnly
. - T — символ у секції коду.
System.map
створюється при кожній збірці ядра з огляду на те, що в різних версіях можуть бути різні адреси процедур[1].
Примітки
- ↑ What Is The System.map File?. Архів оригіналу за 10 травня 2017. Процитовано 25 березня 2017.
На цю статтю не посилаються інші статті Вікіпедії. Будь ласка розставте посилання відповідно до прийнятих рекомендацій. |