Skip to main content

Linux - คำสั่ง Unix: nm

[Termux] สอน แชท,คุย ด้วยแอพ Termux (เมษายน 2025)

[Termux] สอน แชท,คุย ด้วยแอพ Termux (เมษายน 2025)
Anonim

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

สรุป

nm -a|--debug-SYMS -G|--extern เท่านั้น -B -C|--demangle= สไตล์ -D|แบบไดนามิก -S|--print ขนาด -s|--print-armap -A|-o|--print ชื่อไฟล์ -n|-v|--numeric เรียงลำดับ -p|--no-การจัดเรียง -r|--reverse เรียงลำดับ --size เรียงลำดับ -ยู|--undefined เท่านั้น t- สมุฎฐาน |--radix = สมุฎฐาน -P|--portability --target = bfdname -f รูป |--format = รูป --defined เท่านั้น -l|--line ตัวเลข --no-demangle -V|--version -X 32_64 --ช่วยด้วย objfile …

รายละเอียด

GNUนาโนเมตร แสดงสัญลักษณ์จากไฟล์อ็อบเจ็กต์ objfile …. ถ้าไม่มีไฟล์อ็อบเจ็กต์แสดงเป็นอาร์กิวเมนต์นาโนเมตร สันนิษฐานไฟล์ a.out .

สำหรับแต่ละสัญลักษณ์,นาโนเมตร แสดงให้เห็นว่า:

*

ค่าสัญลักษณ์ใน 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)นาโนเมตร).

-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

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

-r

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

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

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

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

t- สมุฎฐาน

--radix = สมุฎฐาน

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

--target = bfdname

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

-ยู

--undefined เท่านั้น

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

--defined เท่านั้น

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

-V

--version

แสดงหมายเลขรุ่นของนาโนเมตร และออก

-X

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

--ช่วยด้วย

แสดงข้อมูลสรุปของตัวเลือกนาโนเมตร และออก

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

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

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