GNU/Linux >> Belajar Linux >  >> Linux

Tutorial Perintah Linux nm untuk Pemula (10 Contoh)

Jika Anda adalah pengguna Linux yang juga ke dalam pengembangan perangkat lunak tingkat sistem, Anda mungkin menemukan diri Anda dalam situasi di mana-di 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 menggunakan beberapa contoh yang mudah dipahami. Namun sebelum kita melakukannya, perlu disebutkan bahwa semua contoh di sini telah diuji pada mesin Ubuntu 16.04 LTS.

Perintah nm Linux

Utilitas baris perintah nm pada dasarnya mencantumkan simbol dari file objek. Berikut sintaks alat ini:

nm [OPTIONS] OBJECT-FILENAME

Dan berikut ini adalah bagaimana halaman manual perintah menjelaskannya:

       GNU nm lists the symbols from object files objfile....  If no object
       files are listed as arguments, nm assumes the file a.out.

Berikut adalah beberapa contoh gaya Tanya Jawab yang akan memberi Anda ide yang lebih baik tentang cara kerja nm.

Q1. Bagaimana perintah nm bekerja?

Penggunaan dasar dari perintah ini sangat mudah - yang harus Anda lakukan adalah menjalankan perintah 'nm' dan meneruskan nama file objek sebagai inputnya. Misalnya, saya menggunakan perintah nm dengan file biner 'apl':

nm apl

Tangkapan layar berikut menunjukkan jenis output yang dihasilkan oleh perintah di atas:

Tiga kolom yang dihasilkan dalam output masing-masing mewakili nilai simbol, jenis simbol, dan nama simbol. Ada beberapa jenis simbol - untuk mengetahui detail lengkapnya, buka halaman manual perintah nm.

Q2. Bagaimana agar nama file mendahului setiap simbol dalam output?

Ini dapat Anda lakukan menggunakan -A opsi baris perintah.

nm -A [obj-file]

Misalnya:

nm -A apl

Jadi Anda dapat melihat nama file ditambahkan di awal setiap baris.

Q3. Bagaimana cara membuat nm menampilkan simbol debugger juga?

Untuk membuat nm menampilkan simbol debugger juga di output, gunakan -a opsi baris perintah.

nm -a [obj-filename]

Misalnya:

nm -a apl

Perintah di atas akan menampilkan semua simbol, termasuk simbol khusus debugger yang biasanya tidak terdaftar.

Q4. Bagaimana cara membuat nm decode nama simbol tingkat rendah?

Jika mau, Anda bahkan dapat memaksa nm untuk memecahkan kode nama simbol tingkat rendah menjadi nama tingkat pengguna. Ini dapat Anda lakukan menggunakan opsi baris perintah -C.

nm -C [obj-file]

Misalnya:

nm -C apl

Inilah yang dikatakan halaman manual tentang opsi ini:

           Besides removing any initial underscore prepended by the system,
           this makes C++ function names readable. Different compilers have
           different mangling styles. The optional demangling style argument
           can be used to choose an appropriate demangling style for your
           compiler.

Q5. Bagaimana membuat nm hanya menampilkan simbol dinamis?

Jika Anda ingin nm hanya menampilkan simbol dinamis , bukan simbol normal, gunakan -D opsi baris perintah.

nm -D [obj-file]

Misalnya:

nm -D apl

Jadi Anda dapat melihat bahwa nm hanya menghasilkan simbol dinamis di output.

Q6. Bagaimana cara menggunakan format keluaran nm yang berbeda?

Untuk mengaktifkan format output yang berbeda, gunakan opsi baris perintah -f. Secara default, output dihasilkan dalam format bsd, namun, jika diinginkan, Anda juga dapat mengaktifkan format 'sysv' dan 'posix'.

nm -f [format] [obj-filename]

Misalnya:

nm -f posix apl

Amati perubahan format sekarang.

Q7. Bagaimana cara membuat nm hanya menampilkan simbol eksternal?

Ini dapat Anda capai dengan menggunakan opsi baris perintah -g.

nm -g [obj-file]

Misalnya:

nm -g  apl

Q8. Apa yang disediakan oleh semua opsi pengurutan nm?

Secara default, simbol diurutkan berdasarkan abjad. Namun, jika mau, Anda dapat mengurutkannya secara numerik berdasarkan alamatnya menggunakan -n opsi baris perintah.

nm -n [objfile]

Misalnya:

nm -n apl

Jadi Anda dapat melihat output diurutkan berdasarkan alamat sekarang.

Jika Anda tidak ingin nm menerapkan jenis penyortiran apa pun (termasuk penyortiran default yang digunakannya), gunakan opsi baris perintah -p. Selanjutnya, untuk membalikkan pengurutan yang ada, gunakan opsi baris perintah -r.

Q9. Bagaimana cara membuat nm hanya menampilkan simbol yang tidak ditentukan?

Ini dapat Anda lakukan dengan menggunakan -u opsi baris perintah.

nm -u [obj-file]

Misalnya:

nm -u apl

Q10. Bagaimana membuat nm hanya menampilkan simbol yang ditentukan?

Untuk membuat nm hanya menampilkan simbol yang ditentukan, gunakan --defined-only opsi baris perintah.

nm --defined-only [obj-file]

Misalnya:

nm --defined-only apl

Kesimpulan

Setuju, perintah nm memiliki audiens khusus, tetapi pengalaman pribadi saya mengatakan bahkan jika Anda tidak menganggap diri Anda sebagai bagian dari audiens itu, perlu diingat bahwa alat semacam itu ada. Dan bagi mereka yang ingin menggunakan utilitas ini, setelah selesai mempraktikkan semua contoh di sini, buka halaman manual nm untuk mengetahui lebih lanjut.


Linux
  1. Tutorial perintah cd Linux untuk pemula (8 Contoh)

  2. Tutorial Perintah Tanggal Linux untuk Pemula (8 Contoh)

  3. Tutorial Perintah Hostname Linux untuk Pemula (5 Contoh)

  1. Tutorial perintah comm Linux untuk pemula (5 contoh)

  2. Tutorial Perintah Linux df untuk Pemula (8 Contoh)

  3. Tutorial Perintah Linux du untuk Pemula (10 Contoh)

  1. Tutorial Perintah gema Linux untuk Pemula (5 Contoh)

  2. Tutorial Perintah Linux env Untuk Pemula (5 Contoh)

  3. Tutorial Perintah ukuran Linux untuk Pemula (6 Contoh)