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 ) ເພື່ອເບິ່ງວິທີການໃຊ້ຄໍາສັ່ງໃນຄອມພິວເຕີຂອງທ່ານ.