Sistem haritası
System.map , Linux işletim sisteminin çekirdeği tarafından kullanılan işlevlerin ve prosedürlerin adreslerinin sembolik bir tablosunu içeren bir dosyadır . Bu tablo, değişkenlerin ve işlevlerin adlarını ve bilgisayar belleğindeki adreslerini listeler . Bu tablo, Çekirdek paniği veya Linux hataları durumunda çekirdeğin hatalarını ayıklarken oldukça kullanışlıdır . çekirdek
derlendiğinde oluşturulur .System.map
Yüklenen çekirdek için sembolik adres tablosu da /proc/kallsyms.
Dosya oluşturma
Dosya System.mapkomutu ile oluşturulabilir nm -n vmlinux > System.map. Çekirdeği derlerken aşağıdaki komut kullanılır (komut dosyası /usr/src/linux/scripts/mksysmap, çekirdek sürümü 2.6.35): $NM -n $1 | grep -v '\( [aNUw] \)\|\(__crc_\)\|\( \$[adt]\)' > $2burada $1file vmlinux, $2file'dir System.map.
bağırsaklar
Dosya içeriği örneği System.map:
c040f4ec b local_apic_timer_verify_ok c040f4f0 b kalibrasyon_sonucu c040f4f4 b etkin_via_apicbase c040f4f8 b apic_phys c040f500 b apic_pm_state c040f538 B nmi_aktif c040f53c B nmi_watchdog_enabled c040f540 B bilinmiyor_nmi_panik c040f544 b backtrace_mask c040f548 b kilidi.19318 c040f54c b nmi_pm_active c040f550 b last_irq_sums c040f560 b uyarı_sayacı
System.mapfarklı sürümlerde farklı prosedür adresleri olabileceğinden dolayı her çekirdek yapısıyla oluşturulur [1] .
Karakter türleri
İkinci sütun, sembolün türünü gösterir (büyük harf, genel veya dışa aktarılan sembol, küçük harf ise yerel anlamına gelir):
- A mutlak değerdir.
- B veya b, başlatılmamış veri bölümündeki bir karakterdir (genellikle BSS olarak anılır).
- D veya d, başlatılan veri bölümündeki bir karakterdir.
- G veya g, global küçük nesneler için başlatılan veri bölümündeki bir karakterdir.
- i, DLL'ye özgü bir bölümdür.
- N bir hata ayıklama karakteridir.
- p, yığın çözme bölümüdür.
- R veya r, salt okunur bölümdeki bir karakterdir.
- S veya s, küçük nesneler için başlatılmamış veri bölümündeki bir karakterdir.
- T veya t, kod bölümündeki bir karakterdir.
- U tanımsız bir semboldür.
- V veya v zayıf bir nesnedir.
- W veya w, bu şekilde etiketlenmemiş zayıf bir nesnedir.
- - a.out nesne dosyasındaki saplama karakterini temsil eder
- ? tanımsız karakter türü anlamına gelir
Dosya sistemindeki konum
Linux çekirdeği oluşturulduktan sonra System.map, dosya /usr/src/linux/. Ancak, bazı programlar bunu başka yerlerde ve bazen farklı bir adla gerektirir, örneğin . Örneğin, SVGAlib oluşturmak için dizinde bir dosyaya ihtiyacınız var./boot/System.map-$(uname -r)System.map/lib/modules/$(uname -r)/build/[ gerçeğin önemi? ] .
Ayrıca
Notlar
- ↑ System.map Dosyası Nedir? (kullanılamayan bağlantı) . Erişim tarihi: 20 Eylül 2011. 10 Mayıs 2017 tarihinde kaynağından arşivlendi .
Bağlantılar
- Alavor Vasudevan. Linux Çekirdeği NASIL, System.map ( 4 Mayıs 2003). — System.map dosyasının açıklaması. Erişim tarihi: 20 Eylül 2011.
- System.map dosyası (İngilizce) (downlink) . - Semboller, sembol tabloları ve System.map dosyası hakkında bilgiler. Erişim tarihi: 20 Eylül 2011. 19 Mayıs 2012 tarihinde kaynağından arşivlendi .