Nm - คำสั่ง Linux - คำสั่ง Unix

nm - แสดงสัญลักษณ์จากไฟล์อ็อบเจ็กต์

สรุป

nm [ -a | --debug-syms ] [ -g | --extern-only ]
[ -B ] [ -C | --demangle [= สไตล์ ]] [ -D | - พลศาสตร์ ]
[ -S | --print-size ] [ -s | - พิมพ์ - armap ]
[ -A | -o | --print-file-name ]
[ -n | -v | --numeric-sort ] [ -p | --no-sort ]
[ -r | --reverse-sort ] [ --size-sort ] [ -u | - เฉพาะเจาะจงเท่านั้น ]
[ -t radix | --radix = radix ] [ -P | ความสามารถในการพกพา ]
[ --target = bfdname ] [ -f รูปแบบ | - format = format ]
[ - กำหนดอย่างเดียว ] [ -l | --line-numbers ] [ --no-demangle ]
[ -V | --version ] [ -X 32_64 ] [ --help ] [ objfile ... ]

รายละเอียด

GNU nm แสดงสัญลักษณ์จากไฟล์อ็อบเจ็กต์ objfile .... ถ้าไม่มีไฟล์อ็อบเจ็กต์อยู่ในอาร์กิวเมนต์ nm จะถือว่าเป็นไฟล์ a.out

สำหรับแต่ละสัญลักษณ์ nm จะแสดง:

* * * *

ค่าสัญลักษณ์ใน radix ที่เลือกโดยตัวเลือก (ดูด้านล่าง) หรือเลขฐานสิบหกตามค่าเริ่มต้น

* * * *

ประเภทสัญลักษณ์ ใช้ชนิดต่อไปนี้อย่างน้อยที่สุด อื่น ๆ เช่นกันขึ้นอยู่กับรูปแบบไฟล์วัตถุ หากเป็นตัวพิมพ์เล็ก ถ้าเป็นตัวพิมพ์ใหญ่สัญลักษณ์เป็นแบบสากล (ภายนอก)

ค่าของสัญลักษณ์เป็นค่าสัมบูรณ์และจะไม่มีการเปลี่ยนแปลงโดยการเชื่อมโยงเพิ่มเติม

B

สัญลักษณ์นี้อยู่ในส่วนข้อมูลที่ไม่ได้เริ่มต้น (เรียกว่า BSS)

C

สัญลักษณ์เป็นเรื่องธรรมดา สัญลักษณ์ทั่วไปคือข้อมูลที่ไม่ได้เริ่มต้น เมื่อเชื่อมโยงสัญลักษณ์ร่วมกันหลาย ๆ อาจปรากฏขึ้นพร้อมกัน หากสัญลักษณ์ถูกกำหนดไว้ที่ใดก็ได้สัญลักษณ์ทั่วไปจะถือว่าเป็นข้อมูลอ้างอิงที่ไม่ได้ระบุไว้

D

สัญลักษณ์อยู่ในส่วนข้อมูลที่เริ่มต้น

G

สัญลักษณ์อยู่ในส่วนข้อมูลที่เริ่มต้นสำหรับวัตถุขนาดเล็ก รูปแบบไฟล์อ็อบเจ็กต์บางชนิดอนุญาตให้มีการเข้าถึงวัตถุข้อมูลขนาดเล็กได้มากขึ้นเช่นตัวแปรอินทราเน็ตทั่วโลกแทนที่จะเป็นอาร์เรย์ส่วนกลางขนาดใหญ่

ผม

สัญลักษณ์นี้เป็นการอ้างอิงทางอ้อมไปยังสัญลักษณ์อื่น นี่คือ GNUextension ไปยังรูปแบบไฟล์ object a.out ซึ่งใช้กันน้อยมาก

ยังไม่มีข้อความ

สัญลักษณ์นี้เป็นสัญลักษณ์การแก้จุดบกพร่อง

R

สัญลักษณ์นี้อยู่ในส่วนข้อมูลแบบอ่านอย่างเดียว

S

สัญลักษณ์นี้อยู่ในส่วนข้อมูลที่ไม่ได้ตั้งใจสำหรับวัตถุขนาดเล็ก

T

สัญลักษณ์อยู่ในส่วนของข้อความ (code)

ยู

สัญลักษณ์ไม่ได้กำหนดไว้

V

สัญลักษณ์เป็นวัตถุที่อ่อนแอ เมื่อสัญลักษณ์ที่กำหนดไว้ที่อ่อนแอจะเชื่อมโยงกับสัญลักษณ์ที่กำหนดไว้ตามปกติสัญลักษณ์ที่กำหนดตามปกติถูกใช้โดยไม่มีข้อผิดพลาด เมื่อมีการเชื่อมโยงสัญลักษณ์ที่ไม่ได้ระบุอย่างอ่อนและสัญลักษณ์ไม่ได้กำหนดค่าของสัญลักษณ์อ่อนจะกลายเป็นศูนย์ที่ไม่มีข้อผิดพลาด

W

สัญลักษณ์นี้เป็นสัญลักษณ์ที่อ่อนแอซึ่งไม่ได้ถูกระบุโดยเฉพาะว่าเป็นสัญลักษณ์ของวัตถุที่อ่อนแอ เมื่อสัญลักษณ์ที่กำหนดไว้ที่อ่อนแอจะเชื่อมโยงกับสัญลักษณ์ที่กำหนดไว้ตามปกติสัญลักษณ์ที่กำหนดตามปกติถูกใช้โดยไม่มีข้อผิดพลาด เมื่อมีการเชื่อมโยงสัญลักษณ์ที่ไม่ได้ระบุอย่างอ่อนและสัญลักษณ์ไม่ได้กำหนดค่าของสัญลักษณ์อ่อนจะกลายเป็นศูนย์ที่ไม่มีข้อผิดพลาด

-

สัญลักษณ์เป็นสัญลักษณ์ stabs ในไฟล์วัตถุ a.out ในกรณีนี้ค่าต่อไปที่พิมพ์คือแทงทุ่งอื่น stabs desc field และ stabs ใช้สัญลักษณ์ Stabs เพื่อเก็บข้อมูลการดีบัก

?

ไม่รู้จักประเภทสัญลักษณ์หรือรูปแบบไฟล์อ็อบเจ็กต์เฉพาะ

* * * *

ชื่อสัญลักษณ์

ตัวเลือก

ตัวเลือกแบบยาวและแบบสั้นที่แสดงในที่นี้เป็นทางเลือกเทียบเท่า

-A

-o

--print ชื่อไฟล์

นำแต่ละสัญลักษณ์โดยใช้ชื่อของไฟล์ข้อมูลที่ป้อน (หรือสมาชิกที่เก็บถาวร) ที่มีการค้นพบแทนที่จะระบุไฟล์อินพุตเพียงครั้งเดียวก่อนสัญลักษณ์ทั้งหมด

-a

--debug-SYMS

แสดงสัญลักษณ์ทั้งหมดแม้แต่สัญลักษณ์ดีบั๊กเท่านั้น; ปกติเหล่านี้จะไม่อยู่ในรายการ

-B

เช่นเดียวกับ --format = bsd (สำหรับเข้ากันได้กับ MIPS nm )

-C

--demangle [= สไตล์ ]

ถอดรหัส ( demangle ) ชื่อสัญลักษณ์ระดับต่ำลงในชื่อระดับผู้ใช้ นอกเหนือจากการลบเครื่องหมายเริ่มต้นที่ prepended โดยระบบทำให้ C ++ ชื่อฟังก์ชันสามารถอ่านได้ คอมไพเลอร์ที่แตกต่างกันมีสไตล์ที่แตกต่างกัน สามารถใช้อาร์กิวเมนต์สไตล์ demangling ได้เพื่อเลือกรูปแบบการทำให้หย่อนชี้ที่เหมาะสมสำหรับคอมไพเลอร์ของคุณ

--no-demangle

อย่ารื้อถอนชื่อสัญลักษณ์ระดับต่ำ นี่เป็นค่าเริ่มต้น

-D

แบบไดนามิก

แสดงสัญลักษณ์แบบไดนามิกแทนที่จะเป็นสัญลักษณ์ปกติ นี่เป็นเพียงความหมายสำหรับวัตถุแบบไดนามิกเท่านั้นเช่นไลบรารีที่ใช้ร่วมกันบางประเภท

-f รูปแบบ

- format = รูปแบบ

ใช้รูปแบบรูปแบบเอาต์พุตซึ่งอาจเป็น "bsd", "sysv" หรือ "posix" ค่าเริ่มต้นคือ "bsd" เฉพาะอักขระตัวแรกของ รูปแบบ เท่านั้น สามารถเป็นได้ทั้งตัวพิมพ์ใหญ่หรือเล็ก

-G

--extern เท่านั้น

แสดงเฉพาะสัญลักษณ์ภายนอก

-l

--line ตัวเลข

สำหรับแต่ละสัญลักษณ์ให้ใช้ข้อมูลการดีบักเพื่อค้นหาชื่อไฟล์และหมายเลขบรรทัด สำหรับสัญลักษณ์ที่กำหนดให้มองหาหมายเลขบรรทัดของที่อยู่ของสัญลักษณ์ สำหรับสัญลักษณ์ที่ไม่ได้ระบุให้มองหาหมายเลขบรรทัดของรายการย้ายที่หมายถึงสัญลักษณ์ หากพบข้อมูลหมายเลขบรรทัดให้พิมพ์หลังจากข้อมูลสัญลักษณ์อื่น ๆ

-n

-v

--numeric เรียงลำดับ

เรียงลำดับสัญลักษณ์ตามที่อยู่ของพวกเขาแทนที่จะเรียงตามตัวอักษรตามชื่อ

-p

--no-การจัดเรียง

อย่ารำคาญที่จะเรียงลำดับสัญลักษณ์ในลำดับใด ๆ พิมพตามลําดับที่ตองการ

-P

--portability

ใช้รูปแบบเอาต์พุตมาตรฐาน POSIX.2 แทนรูปแบบเริ่มต้น เทียบเท่ากับ -f posix

-S

--print ขนาด

พิมพ์ขนาดของสัญลักษณ์ที่กำหนดไว้สำหรับรูปแบบเอาต์พุต "bsd"

-s

--print-armap

เมื่อแสดงสัญลักษณ์จากสมาชิกถาวรให้ใส่ดัชนี: การทำแผนที่ (เก็บไว้ในไฟล์ archive โดย ar หรือ ranlib ) ซึ่งโมดูลมีคำจำกัดความสำหรับชื่อ

-r

--reverse เรียงลำดับ

ย้อนกลับลำดับการจัดเรียง (ไม่ว่าจะเป็นตัวเลขหรือตัวอักษร); ปล่อยให้คนสุดท้ายมาก่อน

--size เรียงลำดับ

เรียงสัญลักษณ์ตามขนาด ขนาดถูกคำนวณเป็นความแตกต่างระหว่างค่าของสัญลักษณ์และค่าของสัญลักษณ์กับค่าที่สูงกว่าถัดไป ขนาดของสัญลักษณ์ถูกพิมพ์มากกว่าค่า

-t radix

--radix = radix

ใช้ ค่า radix เป็นค่า radix สำหรับพิมพ์ค่าสัญลักษณ์ ต้องเป็น d สำหรับทศนิยม, o สำหรับเลขฐานแปดหรือ x สำหรับเลขฐานสิบหก

--target = bfdname

ระบุรูปแบบรหัสอ็อบเจ็กต์นอกเหนือจากรูปแบบเริ่มต้นของระบบ

-ยู

--undefined เท่านั้น

แสดงเฉพาะสัญลักษณ์ที่ไม่ได้กำหนดไว้ (ซึ่งอยู่ภายนอกไฟล์แต่ละไฟล์)

--defined เท่านั้น

แสดงเฉพาะสัญลักษณ์ที่กำหนดไว้สำหรับแต่ละไฟล์อ็อบเจ็กต์

-V

--version

แสดงหมายเลขเวอร์ชันของ nm และออก

-X

ตัวเลือกนี้จะถูกละเว้นสำหรับความเข้ากันได้กับ nm เวอร์ชัน AIX ใช้เวลาหนึ่งพารามิเตอร์ซึ่งต้องเป็นสตริง 32_64 โหมดเริ่มต้นของ AIX nm สอดคล้องกับ -X 32 ซึ่งไม่ได้รับการสนับสนุนโดย GNU nm

--ช่วยด้วย

แสดงสรุปตัวเลือกเพื่อ nm และออก

ดูสิ่งนี้ด้วย

ar (1), objdump (1), ranlib (1) และรายการข้อมูลสำหรับ binutils

สำคัญ: ใช้คำสั่ง man ( % man ) เพื่อดูว่าคำสั่งถูกใช้อย่างไรในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ