Nm - Linux Command - Unix Command

nm - ລາຍເຊັນຈາກໄຟລ໌ວັດຖຸ

SYNOPSIS

nm [ -a | --debug-syms ] [ -g | -extern-only ]
[ -B ] [ -C | -demangle [= style ]] [ -D | - ແບບເຄື່ອນໄຫວ ]
[ -S | --print-size ] [ -s | --print-armap ]
[ -A | -o | - print-file-name ]
[ -n | -v | --number-sort ] [ -p | - no-sort ]
[ -r | - reverse-sort ] [ - size-sort ] [ -u | - ມີກໍານົດພຽງແຕ່ ]
[ -t radix | - radix = radix ] [ -P | --portability ]
[ --target = bfdname ] [ -f format | - format = format ]
[ - ກໍານົດພຽງແຕ່ ] [ -l | - ເສັ້ນທາງເລກ ] [- no-demangle ]
[ -V | --version ] [ -X 32_64 ] [ --help ] [ objfile ]

DESCRIPTION

GNU nm ລາຍຊື່ສັນຍາລັກຈາກໄຟລ໌ວັດຖຸ objfile .... ຖ້າບໍ່ມີໄຟລ໌ວັດຖຸຖືກລະບຸໄວ້ເປັນຕົວຢ່າງ, nm ຄາດຄະດີ aout .

ສໍາລັບແຕ່ລະສັນຍາລັກ, nm ສະແດງໃຫ້ເຫັນ:

*

ມູນຄ່າສັນຍາລັກ, ໃນ radix ເລືອກໂດຍທາງເລືອກ (ເບິ່ງຂ້າງລຸ່ມ), ຫຼື hexadecimal ໂດຍຄ່າເລີ່ມຕົ້ນ.

*

ປະເພດສັນຍາລັກ. ຢ່າງຫນ້ອຍປະເພດດັ່ງຕໍ່ໄປນີ້ຖືກນໍາໃຊ້; ອີກປະການຫນຶ່ງແມ່ນ, ເຊັ່ນດຽວກັນ, ຂຶ້ນກັບຮູບແບບໄຟລ໌ວັດຖຸ. ຖ້າຕົວນ້ອຍ, ສັນຍາລັກແມ່ນທ້ອງຖິ່ນ; ຖ້າຕົວແປໃຫຍ່, ສັນຍາລັກແມ່ນທົ່ວໂລກ (ພາຍນອກ).

A

ມູນຄ່າຂອງສັນຍາລັກແມ່ນຢ່າງແທ້ຈິງ, ແລະຈະບໍ່ໄດ້ຮັບການປ່ຽນແປງໂດຍການເຊື່ອມຕໍ່ຕື່ມອີກ.

B

ສັນຍາລັກຢູ່ໃນພາກຂໍ້ມູນທີ່ບໍ່ຖືກເລີ່ມຕົ້ນ (ທີ່ເອີ້ນວ່າ BSS).

C

ສັນຍາລັກແມ່ນທົ່ວໄປ. ສັນຍາລັກທົ່ວໄປແມ່ນຂໍ້ມູນທີ່ບໍ່ໄດ້ເລີ່ມຕົ້ນ. ເມື່ອການເຊື່ອມໂຍງ, ສັນຍາລັກທົ່ວໄປຫຼາຍອາດຈະປາກົດຢູ່ດ້ວຍຊື່ດຽວກັນ. ຖ້າສັນຍາລັກຖືກກໍານົດຢູ່ທຸກບ່ອນ, ສັນຍາລັກທົ່ວໄປຈະຖືກຖືວ່າເປັນເອກະສານທີ່ບໍ່ຖືກກໍານົດ.

D

ສັນຍາລັກຢູ່ໃນສ່ວນຂໍ້ມູນເລີ່ມຕົ້ນ.

G

ສັນຍາລັກຢູ່ໃນສ່ວນຂໍ້ມູນເລີ່ມຕົ້ນສໍາລັບວັດຖຸຂະຫນາດນ້ອຍ. ບາງຮູບແບບໄຟລ໌ວັດຖຸອະນຸຍາດໃຫ້ມີການເຂົ້າເຖິງປະສິດທິພາບຫຼາຍຂຶ້ນກັບວັດຖຸຂໍ້ມູນຂະຫນາດນ້ອຍ, ເຊັ່ນ: ຕົວຊີ້ວັດ int ທົ່ວໂລກທີ່ກົງກັນຂ້າມກັບ array ທົ່ວໂລກຂະຫນາດໃຫຍ່.

ຂ້ອຍ

ສັນຍາລັກແມ່ນການອ້າງອິງໂດຍກົງກັບສັນຍາລັກອື່ນ. ນີ້ແມ່ນ GNUextension ກັບຮູບແບບໄຟລ໌ຂອງ object a.out ທີ່ໃຊ້ບໍ່ໄດ້.

N

ສັນຍາລັກແມ່ນສັນຍາລັກແກ້ໄຂ.

R

ສັນຍາລັກຢູ່ໃນພາກຂໍ້ມູນທີ່ອ່ານໄດ້ເທົ່ານັ້ນ.

S

ສັນຍາລັກແມ່ນຢູ່ໃນພາກຂໍ້ມູນທີ່ບໍ່ໄດ້ເລີ່ມຕົ້ນສໍາລັບວັດຖຸຂະຫນາດນ້ອຍ.

T

ສັນຍາລັກຢູ່ໃນສ່ວນຂໍ້ຄວາມ (code).

U

ສັນຍາລັກແມ່ນບໍ່ຖືກກໍານົດ.

V

ສັນຍາລັກເປັນສິ່ງທີ່ອ່ອນແອ. ເມື່ອສັນຍາລັກທີ່ອ່ອນແອຖືກເຊື່ອມໂຍງກັບສັນຍາລັກທີ່ກໍານົດໄວ້ຕາມປົກກະຕິ, ສັນຍາລັກທີ່ກໍານົດໄວ້ຕາມປົກກະຕິຈະຖືກນໍາໃຊ້ໂດຍບໍ່ມີຂໍ້ຜິດພາດ. ເມື່ອສັນຍາລັກ undefined ອ່ອນແອຖືກເຊື່ອມໂຍງແລະສັນຍາລັກບໍ່ໄດ້ຖືກກໍານົດ, ມູນຄ່າຂອງສັນຍາລັກທີ່ອ່ອນແອຈະກາຍເປັນສູນທີ່ບໍ່ມີຂໍ້ຜິດພາດ.

W

ສັນຍາລັກແມ່ນສັນຍາລັກທີ່ອ່ອນແອທີ່ບໍ່ໄດ້ຖືກ tagged ໂດຍສະເພາະເປັນສັນຍາລັກຂອງຈຸດອ່ອນ. ເມື່ອສັນຍາລັກທີ່ອ່ອນແອຖືກເຊື່ອມໂຍງກັບສັນຍາລັກທີ່ກໍານົດໄວ້ຕາມປົກກະຕິ, ສັນຍາລັກທີ່ກໍານົດໄວ້ຕາມປົກກະຕິຈະຖືກນໍາໃຊ້ໂດຍບໍ່ມີຂໍ້ຜິດພາດ. ເມື່ອສັນຍາລັກ undefined ອ່ອນແອຖືກເຊື່ອມໂຍງແລະສັນຍາລັກບໍ່ໄດ້ຖືກກໍານົດ, ມູນຄ່າຂອງສັນຍາລັກທີ່ອ່ອນແອຈະກາຍເປັນສູນທີ່ບໍ່ມີຂໍ້ຜິດພາດ.

-

ສັນຍາລັກແມ່ນສັນຍາລັກ stabs ໃນໄຟລ໌ວັດຖຸ a.out. ໃນກໍລະນີນີ້, ມູນຄ່າຕໍ່ໄປພິມໄດ້ແມ່ນການ stabs ຂົງເຂດອື່ນໆ, ສະຫນາມ stabs desc ແລະປະເພດ stab. ສັນຍາລັກ Stabs ຖືກນໍາໃຊ້ເພື່ອເກັບຂໍ້ມູນການແກ້ໄຂ.

?

ປະເພດສັນຍາລັກແມ່ນບໍ່ຮູ້ຈັກ, ຫຼືຮູບແບບໄຟລ໌ວັດຖຸສະເພາະ.

*

ຊື່ສັນຍາລັກ.

OPTIONS

ຮູບແບບທີ່ຍາວແລະສັ້ນຂອງທາງເລືອກ, ສະແດງໃຫ້ເຫັນໃນທີ່ນີ້ເປັນທາງເລືອກ, ແມ່ນທຽບເທົ່າ.

-A

-o

- ພິມໄຟລ໌ຊື່

ກ່ອນທີ່ຈະເອົາສັນຍາລັກຂອງແຕ່ລະຊື່ໂດຍຊື່ຂອງໄຟລ໌ເຂົ້າ (ຫຼືສະມາຊິກຮວບຮວມ) ທີ່ມັນໄດ້ຖືກພົບ, ແທນທີ່ຈະກໍານົດໄຟລ໌ເຂົ້າເທົ່ານັ້ນ, ກ່ອນທີ່ທັງຫມົດຂອງສັນຍາລັກຂອງມັນ.

-a

-debug-syms

ສະແດງສັນຍາລັກທັງຫມົດ, ເຖິງແມ່ນວ່າສັນຍາລັກ debugger ເທົ່ານັ້ນ; ປົກກະຕິເຫຼົ່ານີ້ແມ່ນບໍ່ມີລາຍຊື່.

-B

ຄືກັນກັບ - format = bsd (ສໍາລັບຄວາມເຫມາະສົມກັບ MIPS nm ).

-C

-demangle [= style ]

Decode ( demangle ) ຊື່ສັນຍາລັກລະດັບຕ່ໍາລົງໃນຊື່ລະດັບຜູ້ໃຊ້. ນອກເຫນືອຈາກການຖອນຕົວຢ່າງເບື້ອງຕົ້ນເບື້ອງຕົ້ນໂດຍລະບົບ, ນີ້ເຮັດໃຫ້ຊື່ຟັງຊັນ C ++ ສາມາດອ່ານໄດ້. ເຄື່ອງມືລວບລວມຕ່າງໆມີຮູບແບບທີ່ແຕກຕ່າງກັນ. ການໂຕ້ຖຽງແບບດັ້ງເດີມແບບຈໍາລອງຕົວເລືອກສາມາດຖືກນໍາໃຊ້ເພື່ອເລືອກແບບທີ່ສົມເຫດສົມຜົນສໍາລັບການລວບລວມຂອງທ່ານ.

- ບໍ່ມີຝາແຝດ

ຢ່າປະຖິ້ມຊື່ສັນຍາລັກລະດັບຕ່ໍາ. ນີ້ແມ່ນຄ່າເລີ່ມຕົ້ນ.

-D

- ແບບເຄື່ອນໄຫວ

ສະແດງສັນຍາລັກແບບເຄື່ອນໄຫວແທນທີ່ຈະເປັນສັນຍາລັກປົກກະຕິ. ນີ້ແມ່ນພຽງແຕ່ມີຄວາມຫມາຍສໍາລັບວັດຖຸແບບເຄື່ອນໄຫວ, ເຊັ່ນ: ປະເພດໃດຫນຶ່ງຂອງຫໍສະຫມຸດທີ່ແບ່ງປັນ.

-f ຮູບແບບ

-format = format

ໃຊ້ຮູບແບບຜົນຜະລິດທີ່ສາມາດເປັນ "bsd", "sysv", ຫຼື "posix". ຄ່າເລີ່ມຕົ້ນແມ່ນ "bsd". ພຽງແຕ່ລັກສະນະທໍາອິດຂອງ ຮູບແບບ ແມ່ນມີຄວາມສໍາຄັນ; ມັນສາມາດເປັນກໍລະນີເທິງຫຼືລຸ່ມ.

-g

-extern-only

ສະແດງເສພາະສັນຍາລັກພາຍນອກເທົ່ານັ້ນ.

-l

- ເສັ້ນທາງເລກ

ສໍາລັບສັນຍາລັກແຕ່ລະ, ໃຫ້ນໍາໃຊ້ຂໍ້ມູນການແກ້ໄຂເພື່ອພະຍາຍາມຊອກຫາຊື່ໄຟລ໌ແລະເສັ້ນ. ສໍາລັບສັນຍາລັກທີ່ກໍານົດໄວ້, ຊອກຫາເສັ້ນເລກຂອງທີ່ຢູ່ຂອງສັນຍາລັກ. ສໍາລັບສັນຍາລັກ undefined, ເບິ່ງສໍາລັບຈໍານວນເສັ້ນຂອງການຍ້າຍ relocation ທີ່ຫມາຍເຖິງສັນຍາລັກໄດ້. ຖ້າຂໍ້ມູນຈໍານວນເສັ້ນສາມາດພົບໄດ້, ພິມມັນຫຼັງຈາກຂໍ້ມູນສັນຍາລັກອື່ນໆ.

-n

-v

- ຈໍານວນຫລາຍ

ຄັດລອກສັນຍາລັກຕາມຈໍານວນຕົວເລກຂອງພວກເຂົາແທນທີ່ຈະເປັນຕົວເລກຕາມລໍາດັບໂດຍຊື່ຂອງພວກເຂົາ.

-p

- ບໍ່ມີປະເພດ

ຫ້າມບໍ່ໃຫ້ຮວບຮວມສັນຍາລັກໃນຄໍາສັ່ງໃດໆ; ພິມພວກມັນໃນຄໍາສັ່ງທີ່ພົບ.

-P

- ການຂົນສົ່ງ

ໃຊ້ຮູບແບບຜົນຜະລິດມາດຕະຖານ POSIX2 ແທນຮູບແບບເລີ່ມຕົ້ນ. ທຽບເທົ່າ -f posix .

-S

- ພິມຂະຫນາດ

ພິມຂະຫນາດຂອງສັນຍາລັກທີ່ກໍານົດໄວ້ສໍາລັບຮູບແບບຜົນຜະລິດ "bsd".

-s

-print-armap

ໃນເວລາທີ່ການລະບຸສັນຍາລັກຈາກສະມາຊິກຮວບຮວມ, ປະກອບມີດັດສະນີ: ແຜນທີ່ (ເກັບຮັກສາໄວ້ໃນຮວບຮວມໂດຍ ar ຫຼື ranlib ) ຂອງໂມດູນມີຄໍານິຍາມສໍາລັບຊື່ໃດ.

-r

- ປະຕິເສດ - ຄັດ

ປະຕິເສດຄໍາສັ່ງຂອງການຈັດລຽງ (ບໍ່ວ່າຈໍານວນຕົວອັກສອນຫຼືຕົວອັກສອນ); ໃຫ້ສຸດທ້າຍມາກ່ອນ.

-size-sort

ແຍກສັນຍາລັກໂດຍຂະຫນາດ. ຂະຫນາດແມ່ນຖືກຄິດໄລ່ເປັນຄວາມແຕກຕ່າງລະຫວ່າງຄ່າຂອງສັນຍາລັກແລະມູນຄ່າຂອງສັນຍາລັກທີ່ມີມູນຄ່າທີ່ສູງຂຶ້ນຕໍ່ໄປ. ຂະຫນາດຂອງສັນຍາລັກຖືກພິມອອກ, ແທນທີ່ຈະເປັນມູນຄ່າ.

-t radix

--radix = radix

ໃຊ້ radix ເປັນ radix ສໍາລັບການພິມຄ່າສັນຍາລັກ. ມັນຕ້ອງເປັນ d ສໍາລັບທະສະນິຍົມ, o ສໍາລັບ octal, ຫຼື x ສໍາລັບ hexadecimal.

--target = bfdname

ກໍານົດຮູບແບບລະຫັດຂອງວັດຖຸອື່ນນອກເຫນືອຈາກຮູບແບບທີ່ຖືກຕ້ອງຂອງລະບົບຂອງທ່ານ.

-u

- ພຽງແຕ່ກໍານົດໄວ້ເທົ່ານັ້ນ

ສະແດງເສພາະສັນຍາລັກທີ່ບໍ່ຖືກກໍານົດ (ທີ່ຢູ່ພາຍນອກກັບໄຟລ໌ຂອງແຕ່ລະຈຸດ).

- ກໍານົດພຽງແຕ່

ສະແດງສັນຍາລັກທີ່ກໍານົດໄວ້ສໍາລັບແຕ່ລະໄຟລ໌ວັດຖຸ.

-V

- ການປ່ຽນແປງ

ສະແດງຈໍານວນເວີຊັນຂອງ nm ແລະອອກ.

-X

ຕົວເລືອກນີ້ຖືກປະຕິເສດສໍາລັບຄວາມເຂົ້າກັນໄດ້ກັບສະບັບພາສາ AIX ຂອງ nm . ມັນຕ້ອງໃຊ້ພາລາມິເຕີຫນຶ່ງເຊິ່ງຕ້ອງເປັນສະຕິງ 32_64 . ໂຫມດເລີ່ມຕົ້ນຂອງ AIX nm ເທົ່າກັບ -X 32 ເຊິ່ງບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນຈາກ GNU nm .

--help

ສະແດງສະຫຼຸບສັງລວມຂອງຕົວເລືອກເພື່ອ nm ແລະອອກ.

ເບິ່ງຍັງ

ar (1), objdump (1), ranlib (1), ແລະລາຍະການຂໍ້ມູນສໍາລັບ binutils .

ສິ່ງສໍາຄັນ: ໃຊ້ຄໍາສັ່ງ man ( % man ) ເພື່ອເບິ່ງວິທີການໃຊ້ຄໍາສັ່ງໃນຄອມພິວເຕີຂອງທ່ານ.