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 ) เพื่อดูว่าคำสั่งถูกใช้อย่างไรในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ