nm ne demek?

"nm" komutu, bir nesne dosyasının veya paylaşılabilir kütüphanenin sembollerini listeleyen bir Unix komutudur. Bu semboller, fonksiyonlar, değişkenler ve diğer tanımlanmış isimlerdir. Programcılar, özellikle programın nasıl çalıştığını anlama, hata ayıklama veya statik analiz gibi durumlarda bu komutu kullanır.

İşte nm komutu hakkında daha detaylı bilgiler:

  • Amaç: Bir yürütülebilir dosya veya nesne dosyasındaki sembolleri listelemek. Bu sembollerin adreslerini, türlerini ve isimlerini gösterir.

  • Sözdizimi: nm [seçenekler] dosya

  • Önemli Seçenekler:

    • -a veya --debug-syms: Hata ayıklama sembollerini de listeler.
    • -D veya --dynamic: Paylaşılabilir kütüphanelerdeki dinamik sembolleri listeler.
    • -g veya --extern-only: Sadece harici olarak tanımlanmış sembolleri listeler.
    • -l veya --line-numbers: Mümkünse, sembollerin satır numaralarını gösterir.
    • -r veya --reverse-sort: Sembolleri ters sırada listeler.
    • -u veya --undefined: Tanımlanmamış sembolleri listeler.
    • -n veya --numeric-sort: Adres sırasına göre sıralama yapar.
  • Çıktı: nm komutu genellikle aşağıdaki sütunları içeren bir çıktı üretir:

    • Adres: Sembolün bellekteki adresi (genellikle hekzadesimal).
    • Tür: Sembolün türü (örneğin, T tanımlanmış değişken, D tanımlanmış veri, t statik değişken, U tanımlanmamış sembol, W zayıf sembol, R yalnızca okuma verisi vb.). Türler komut satırı arayüzünden arama yapabilirsiniz.
    • Sembol Adı: Sembolün adı.
  • Kullanım Örnekleri:

    • nm myprogram: myprogram yürütülebilir dosyasındaki tüm sembolleri listeler.
    • nm -D libmylib.so: libmylib.so paylaşılabilir kütüphanesindeki dinamik sembolleri listeler.
    • nm -u myprogram: myprogram yürütülebilir dosyasında tanımlanmamış sembolleri listeler (bağlama sorunlarını tespit etmek için faydalıdır).
    • nm -l myobject.o: myobject.o nesne dosyasındaki sembollerin satır numaralarını gösterir.

Özetle: nm komutu, özellikle programcılar için, programın iç yapısını anlamak ve olası sorunları tespit etmek için oldukça kullanışlı bir araçtır. Komutun zengin seçenekleri, çıktıları belirli ihtiyaçlara göre özelleştirmeyi sağlar.