Jika Anda adalah pengguna Linux yang juga menjadi pengembang perangkat lunak tingkat
sistem, Anda mungkin menemukan diri Anda dalam situasi di mana-Anda memerlukan informasi
yang berkaitan dengan simbol dalam file objek. Anda akan senang mengetahui ada utilitas baris
perintah - dijuluki nm - yang dapat Anda gunakan dalam situasi ini.
Dalam tutorial ini, kita akan membahas dasar-dasar alat ini dengan menggunakan beberapa
contoh yang mudah dimengerti. Tapi sebelum melakukannya, perlu disebutkan bahwa semua
contoh di sini telah diuji pada mesin LTE 16,04 Ubuntu.
Perintah Linux nm
Utilitas baris perintah nm pada dasarnya mencantumkan simbol dari file objek. Inilah sintaks
alatnya:
nm [OPTIONS] OBJECT-FILENAME
GNU nm mencantumkan simbol dari file objek objfile .... Jika tidak ada objek
Berikut adalah beberapa contoh Q & A-gaya yang akan memberi Anda gagasan yang lebih baik
tentang bagaimana nm bekerja.
Penggunaan dasar dari perintah ini sangat lurus ke depan - yang harus Anda lakukan adalah
menjalankan perintah 'nm' dan meneruskan nama file objek sebagai masukan untuknya. Sebagai
contoh, saya menggunakan perintah nm dengan file biner 'apl':
nm apl
Tiga kolom yang dihasilkan dalam output mewakili nilai simbol, tipe simbol, dan nama simbol.
Ada beberapa jenis simbol - untuk mengetahui detail lengkap, masuk ke manual man nm.
Q2. Bagaimana memiliki nama file yang mendahului setiap simbol dalam output?
nm -A [obj-file]
Sebagai contoh:
nm -A apl
Jadi Anda bisa melihat nama filenya ditambahkan di awal setiap baris.
Untuk membuat simbol debugger nm juga dalam output, gunakan opsi command -a command
line.
nm -a [obj-filename]
Sebagai contoh:
nm-a apl
Perintah di atas akan menampilkan semua simbol, termasuk simbol debugger saja yang biasanya
tidak terdaftar.
Jika Anda mau, Anda bahkan dapat memaksa nm untuk memecahkan kode nama simbol tingkat
rendah ke dalam nama tingkat pengguna. Ini bisa anda lakukan dengan menggunakan opsi
command-C command line.
nm -C [obj-file]
Sebagai contoh:
nm -C apl
Ini membuat nama fungsi C ++ dapat dibaca. Kompiler yang berbeda memiliki
Bisa digunakan untuk memilih gaya demangling yang tepat untuk Anda
penyusun.
Q5. Bagaimana membuat nm hanya menampilkan simbol dinamis?
Jika Anda ingin nm hanya menampilkan simbol dinamis, bukan simbol normal, gunakan opsi
baris perintah -D .
nm -D [obj-file]
Sebagai contoh:
nm -D apl
Jadi Anda bisa melihat bahwa nm hanya menghasilkan simbol dinamis dalam output.
Untuk mengaktifkan format output yang berbeda, gunakan opsi baris perintah -f. Secara default,
output diproduksi dalam format bsd, namun, jika Anda mau, Anda juga dapat mengaktifkan
format 'sysv' dan 'posix'.
nm -f [format] [obj-filename]
Sebagai contoh:
nm -f posix apl
Amati perubahan format sekarang.
nm -g [obj-file]
Sebagai contoh:
nm -g apl
Secara default, simbol diurutkan menurut abjad. Namun, jika Anda mau, Anda dapat
mengurutkannya secara numerik dengan alamat mereka menggunakan opsi baris perintah -n .
nm -n [objfile]
Sebagai contoh:
nm -n apl
nm -u [obj-file]
Sebagai contoh:
nm -u apl
Untuk membuat nm hanya menampilkan simbol yang didefinisikan, gunakan opsi baris perintah
yang didefinisikan -defined .
nm - define-only [obj-file]
Sebagai contoh:
nm - didefinisikan-hanya apl
Kesimpulan
Setuju, perintah nm memiliki khalayak khusus, namun pengalaman pribadi saya mengatakan
bahkan jika Anda tidak menganggap diri Anda sebagai bagian dari penonton itu, ingatlah bahwa
alat seperti itu ada. Dan bagi mereka yang ingin menggunakan utilitas ini, sekali dilakukan
dengan mempraktikkan semua contoh di sini, pergilah ke halaman manual nm untuk mengetahui
lebih banyak.