WikiDer > Nm (Unix)

Nm (Unix)

nm
Asl muallif (lar)Dennis Ritchi,
Ken Tompson
(AT&T Bell Laboratories)
Tuzuvchi (lar)Turli xil ochiq manbali va tijorat ishlab chiquvchilar
Dastlabki chiqarilish1971 yil 3-noyabr; 49 yil oldin (1971-11-03)
Operatsion tizimUnix, Unixga o'xshash, 9-reja
PlatformaO'zaro faoliyat platforma
TuriBuyruq

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