nm ne demek?

nm, Unix benzeri işletim sistemlerinde kullanılan bir komut satırı aracıdır. Bir nesne dosyasındaki, çalıştırılabilir dosyadaki veya nesne kütüphanesindeki sembol tablosunu görüntülemek için kullanılır. Sembol tablosu, dosyadaki tanımlanmış ve tanımlanmamış semboller hakkında bilgi içerir. Bu semboller, fonksiyon adları, değişken adları ve diğer kod veya veri parçacıklarına karşılık gelebilir.

İşte nm'nin temel işlevleri ve sağladığı bilgiler:

  • Sembol Adları: Her sembolün adı listelenir. Bu, fonksiyonların ve değişkenlerin isimlerini içerir.
  • Sembol Değerleri (Adresleri): Sembolün bellekteki adresi (eğer tanımlıysa) görüntülenir. Bu, sembolün nerede bulunduğunu gösterir.
  • Sembol Tipleri: Sembolün tipi (örneğin, fonksiyon, değişken, dosya adı vb.) belirtilir. Bu, sembolün ne tür bir öğe olduğunu anlamanıza yardımcı olur. Sembol tipleri genellikle tek karakterlerle gösterilir (örneğin, T - kod bölümünde tanımlanmış, D - veri bölümünde tanımlanmış, U - tanımlanmamış).
  • Sembol Boyutları: Bazı semboller için (özellikle veri nesneleri), boyut bilgisi de görüntülenebilir.

nm komutu, özellikle aşağıdaki durumlarda yararlıdır:

  • Hata Ayıklama (Debugging): Bir programın nasıl çalıştığını anlamak ve hataları tespit etmek için kullanılabilir. Örneğin, tanımlanmamış semboller (undefined symbols) bağlantı hatalarına neden olabilir ve nm bu tür sorunları belirlemenize yardımcı olabilir.
  • Kitaplık Analizi: Bir kitaplığın (library) hangi fonksiyonları ve değişkenleri içerdiğini görmek için kullanılabilir. Bu, kitaplığın nasıl kullanılacağını anlamanıza yardımcı olur.
  • Tersine Mühendislik: Bir programın iç yapısını anlamak için kullanılabilir.

Örnek Kullanım:

nm dosya.o
nm calistirilabilir_dosya
nm kitaplik.a

Bu komutlar, belirtilen dosyalardaki sembol tablolarını görüntüler.

Önemli Kavramlar: