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.