WikiDer > Nm (Unix)
Asl muallif (lar) | Dennis Ritchi, Ken Tompson (AT&T Bell Laboratories) |
---|---|
Tuzuvchi (lar) | Turli xil ochiq manbali va tijorat ishlab chiquvchilar |
Dastlabki chiqarilish | 1971 yil 3-noyabr |
Operatsion tizim | Unix, Unixga o'xshash, 9-reja |
Platforma | O'zaro faoliyat platforma |
Turi | Buyruq |
The nm
ning keyingi versiyalariga ega bo'lgan buyruq kemalari Unix va o'xshash operatsion tizimlar shu jumladan 9-reja. nm
tekshirish uchun ishlatiladi ikkilik fayllar (shu jumladan kutubxonalar, tuzilgan ob'ekt modullari, birgalikda ishlatiladigan fayllar va mustaqil bajariladigan fayllar) va ushbu fayllarning tarkibini ko'rsatish uchun yoki meta ma'lumot ularda saqlanadi, xususan belgilar jadvali. Dan chiqish nm
turli xil belgilar turlarini ajratib turadi. Masalan, a ni farq qiladi funktsiya ob'ekt moduli tomonidan ta'minlangan va u talab qiladigan funktsiya. nm
uchun yordam sifatida ishlatiladi disk raskadrovka, ism ziddiyatlaridan kelib chiqadigan muammolarni hal qilishga yordam berish va C ++ mangling nomlariva boshqa qismlarini tasdiqlash uchun asboblar zanjiri.
The GNU loyihasi amalga oshirilishini etkazib beradi nm
qismi sifatida GNU Binutils paket.
nm chiqish namunasi
/* * Fayl nomi: test.c * C kodi uchun quyidagilar tuziladi: * gcc -c test.c * * C ++ kodini quyidagilar bilan kompilyatsiya qilish uchun: * g ++ -c test.cpp */int global_var;int global_var_init = 26;statik int statik_var;statik int statik_var_init = 25;statik int statik_funktsiya(){ qaytish 0;}int global_funktsiya(int p){ statik int local_static_var; statik int local_static_var_init=5; local_static_var = p; qaytish local_static_var_init + local_static_var;}int global_funktsiya2(){ int x; int y; qaytish x+y;}#ifdef __cplusplustashqi "C"#endifbekor ishlamaydigan_funktsiya(){ // Men hech narsa qilmayman}int asosiy(bekor){ global_var = 1; statik_var = 2; qaytish 0;}
Agar oldingi kod. Bilan tuzilgan bo'lsa gcc C kompilyatori, ning chiqishi nm
buyruq quyidagicha:
# nm test.o0000000a T global_funktsiya00000025 T global_funktsiya200000004 C global_var00000000 D global_var_init00000004 b local_static_var.125500000008 d local_static_var_init.12560000003b T asosiy00000036 T ishlamaydigan_funktsiya00000000 t statik_funktsiya00000000 b statik_var00000004 d static_var_init
C ++ kompilyatoridan foydalanilganda, chiqish farq qiladi:
# nm test.o0000000a T _Z15global_functioni00000025 T _Z16global_function2v00000004 b _ZL10static_var00000000 t _ZL15static_functionv00000004 d _ZL15static_var_init00000008 b _ZZ15global_functioniE16local_static_var00000008 d _ZZ15global_functioniE21local_static_var_init U __gxx_personality_v000000000 B global_var00000000 D global_var_init0000003b T asosiy00000036 T ishlamaydigan_funktsiya
Chiqishlar o'rtasidagi farqlar, shuningdek, ismni manga qo'yish muammosini echish misolini ko'rsatadi tashqi "C" C ++ kodida.
Shuningdek qarang
Tashqi havolalar
![]() | Vikikitob Unix uchun qo'llanma mavzusida sahifasi bor: Buyruqlar |
- Yagona UNIX spetsifikatsiyasi, 7-son Ochiq guruh : ob'ekt fayli nomlari ro'yxatini yozish - Buyruqlar va yordam dasturlari,
- 9-reja Dasturchilar uchun qo'llanma, 1-jild –
![]() | Bu Unixbilan bog'liq maqola a naycha. Siz Vikipediyaga yordam berishingiz mumkin uni kengaytirish. |