นี่คือคำสั่ง h8300-hms-objdump ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
objdump - แสดงข้อมูลจากไฟล์อ็อบเจ็กต์
เรื่องย่อ
ขยะมูลฝอย [-a⎪--archive-ส่วนหัว]
[-b bfdname⎪--เป้าหมาย=bfdname]
[-C⎪-- รื้อ[=สไตล์-
[-d⎪--ถอดประกอบ]
[-D⎪--disassemble-ทั้งหมด]
[-z⎪--ถอดชิ้นส่วน-ศูนย์]
[-อี.บี⎪-THE⎪--endian={ใหญ่ ⎪ เล็ก }]
[-f⎪--file-ส่วนหัว]
[--file-start-บริบท]
[-g⎪--debug]
[-e⎪--debugging-แท็ก]
[-h⎪--section-ส่วนหัว⎪--ส่วนหัว]
[-i⎪--ข้อมูล]
[-j ส่วน⎪--ส่วน=ส่วน]
[-l⎪--line-หมายเลข]
[-S⎪--แหล่งที่มา]
[-m เครื่อง⎪--สถาปัตยกรรม=เครื่อง]
[-M ตัวเลือก⎪--disassembler-ตัวเลือก=ตัวเลือก]
[-p⎪--ส่วนหัวส่วนตัว]
[-r⎪--ย้าย]
[-R⎪--ไดนามิก-reloc]
[-s⎪--เนื้อหาเต็ม]
[-G⎪--แทง]
[-t⎪--ซิมส์]
[-T⎪--ไดนามิก-syms]
[-x⎪--ส่วนหัวทั้งหมด]
[-w⎪--กว้าง]
[--เริ่มต้นที่อยู่=ที่อยู่]
[--stop-ที่อยู่=ที่อยู่]
[--prefix-ที่อยู่]
[--[ไม่-]show-raw-insn]
[--adjust-vma=ชดเชย]
[--พิเศษ-syms]
[-V⎪--รุ่น]
[-H⎪--ช่วยด้วย]
อ็อบเจกต์ไฟล์...
DESCRIPTION
ขยะ แสดงข้อมูลเกี่ยวกับไฟล์อ็อบเจ็กต์ตั้งแต่หนึ่งไฟล์ขึ้นไป ตัวเลือกควบคุมอะไร
ข้อมูลเฉพาะที่จะแสดง ข้อมูลนี้ส่วนใหญ่มีประโยชน์สำหรับโปรแกรมเมอร์ที่
กำลังทำงานเกี่ยวกับเครื่องมือคอมไพล์ ซึ่งต่างจากโปรแกรมเมอร์ที่ต้องการ
โปรแกรมที่จะคอมไพล์และทำงาน
อ็อบเจกต์ไฟล์... เป็นไฟล์อ็อบเจ็กต์ที่จะตรวจสอบ เมื่อคุณระบุที่เก็บถาวร ขยะ แสดงให้เห็นว่า
ข้อมูลเกี่ยวกับแต่ละไฟล์อ็อบเจ็กต์สมาชิก
OPTIONS
ตัวเลือกแบบยาวและแบบสั้นที่แสดงที่นี่เป็นทางเลือกนั้นเทียบเท่ากัน อย่างน้อย
ทางเลือกหนึ่งจากรายการ -a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-r,-R,-s,-S,-t,-T,-V ,-NS จะต้องเป็น
ให้
-a
--archive-ส่วนหัว
ถ้าข้อใดข้อหนึ่ง อ็อบเจกต์ไฟล์ ไฟล์เป็นไฟล์เก็บถาวร แสดงข้อมูลส่วนหัวของไฟล์เก็บถาวร (ใน a
รูปแบบคล้ายกับ ls -l). นอกเหนือจากข้อมูลที่คุณสามารถระบุด้วย ar tv, ขยะ
-a แสดงรูปแบบไฟล์อ็อบเจ็กต์ของสมาชิกเก็บถาวรแต่ละราย
--adjust-vma=ชดเชย
เมื่อทำการดัมพ์ข้อมูล ให้เติม . ก่อน ชดเชย ไปยังที่อยู่ของส่วนทั้งหมด นี่คือ
มีประโยชน์หากที่อยู่ส่วนไม่ตรงกับตารางสัญลักษณ์ ซึ่งสามารถ
เกิดขึ้นเมื่อใส่ส่วนที่อยู่เฉพาะเมื่อใช้รูปแบบที่ไม่สามารถ
แสดงที่อยู่ของส่วน เช่น a.out
-b bfdname
--เป้าหมาย=bfdname
ระบุว่ารูปแบบอ็อบเจ็กต์โค้ดสำหรับไฟล์อ็อบเจ็กต์คือ bfdname. ตัวเลือกนี้อาจ
ไม่จำเป็น ขยะ สามารถจดจำรูปแบบต่างๆ ได้โดยอัตโนมัติ
ตัวอย่างเช่น
objdump -b oasys -m vax -h fu.o
แสดงข้อมูลสรุปจากส่วนหัวของส่วน (-h) จาก ฟู.โอซึ่งเป็น
ระบุอย่างชัดเจน (-m) เป็นไฟล์วัตถุ VAX ในรูปแบบที่สร้างโดยOasys
คอมไพเลอร์ คุณสามารถแสดงรายการรูปแบบที่มีให้ด้วย -i ตัวเลือก
-C
--ดีมาเกิล[=สไตล์]
ถอดรหัส (ทำให้ยุ่งเหยิง) ชื่อสัญลักษณ์ระดับต่ำเป็นชื่อระดับผู้ใช้ นอกจากการลบใด ๆ
ขีดล่างเริ่มต้นที่นำหน้าโดยระบบ ซึ่งจะทำให้ชื่อฟังก์ชัน C++ สามารถอ่านได้
คอมไพเลอร์ที่ต่างกันมีรูปแบบการจัดการที่แตกต่างกัน รูปแบบการแยกส่วนเสริม
สามารถใช้อาร์กิวเมนต์เพื่อเลือกรูปแบบการแยกส่วนที่เหมาะสมสำหรับคอมไพเลอร์ของคุณ
-g
--debug
แสดงข้อมูลการดีบัก นี้พยายามที่จะแยกวิเคราะห์ข้อมูลการดีบักที่เก็บไว้ใน
ไฟล์และพิมพ์ออกมาโดยใช้ภาษา C เช่น syntax การดีบักบางประเภทเท่านั้น
ข้อมูลได้รับการดำเนินการ บางประเภทอื่น ๆ ได้รับการสนับสนุนโดย อ่าน -w.
-e
--debugging-แท็ก
Like -gแต่ข้อมูลถูกสร้างขึ้นในรูปแบบที่เข้ากันได้กับเครื่องมือ ctags
-d
--ถอดประกอบ
แสดงคำช่วยจำของแอสเซมเบลอร์สำหรับคำแนะนำเครื่องจาก อ็อบเจกต์ไฟล์. นี้
ตัวเลือกเฉพาะถอดชิ้นส่วนที่คาดว่าจะมีคำแนะนำ
-D
--disassemble-ทั้งหมด
Like -dแต่แยกส่วนเนื้อหาของทุกส่วน ไม่ใช่เฉพาะส่วนที่คาดว่าจะ
มีคำแนะนำ
--prefix-ที่อยู่
เมื่อแยกชิ้นส่วน ให้พิมพ์ที่อยู่ที่สมบูรณ์ในแต่ละบรรทัด นี่คือพี่
รูปแบบการถอดประกอบ
-อี.บี
-THE
--endian={ใหญ่⎪น้อย}
ระบุ endianness ของไฟล์อ็อบเจ็กต์ สิ่งนี้มีผลกับการถอดแยกชิ้นส่วนเท่านั้น นี้สามารถ
มีประโยชน์เมื่อทำการแยกส่วนรูปแบบไฟล์ที่ไม่อธิบาย endianness
ข้อมูลเช่น S-records
-f
--file-ส่วนหัว
แสดงข้อมูลสรุปจากส่วนหัวโดยรวมของแต่ละ อ็อบเจกต์ไฟล์ ไฟล์
--file-start-บริบท
ระบุว่าเมื่อแสดงซอร์สโค้ด/การถอดประกอบที่คั่นระหว่างรายการ (สมมติ -S) จาก
ไฟล์ที่ยังไม่ได้แสดง ขยายบริบทไปยังจุดเริ่มต้นของไฟล์
-h
--section-ส่วนหัว
--ส่วนหัว
แสดงข้อมูลสรุปจากส่วนหัวของไฟล์อ็อบเจ็กต์
ส่วนของไฟล์อาจถูกย้ายไปยังที่อยู่ที่ไม่เป็นมาตรฐาน ตัวอย่างเช่น โดยใช้ตัว
-ข้อความ, -Tdata,หรือ -ช้อนโต๊ะ ตัวเลือกเพื่อ ld. อย่างไรก็ตาม รูปแบบไฟล์อ็อบเจ็กต์บางรูปแบบ เช่น
a.out อย่าเก็บที่อยู่เริ่มต้นของส่วนไฟล์ ในสถานการณ์เหล่านั้น
แม้ว่า ld ย้ายส่วนต่าง ๆ อย่างถูกต้องโดยใช้ ขยะ -h เพื่อแสดงรายการไฟล์
ส่วนหัวของส่วนไม่สามารถแสดงที่อยู่ที่ถูกต้องได้ แต่จะแสดงตามปกติ
ที่อยู่ซึ่งโดยนัยสำหรับเป้าหมาย
-H
--ช่วยด้วย
พิมพ์สรุปตัวเลือกไปที่ ขยะ และออก
-i
--ข้อมูล
แสดงรายการที่แสดงสถาปัตยกรรมและรูปแบบอ็อบเจ็กต์ทั้งหมดที่มีให้
สเปคกับ -b or -m.
-j ชื่อ
--ส่วน=ชื่อ
แสดงข้อมูลเฉพาะส่วน ชื่อ.
-l
--line-หมายเลข
ติดป้ายกำกับจอแสดงผล (โดยใช้ข้อมูลการดีบัก) ด้วยชื่อไฟล์และซอร์สไลน์
ตัวเลขที่สอดคล้องกับรหัสวัตถุหรือ relocs ที่แสดง มีประโยชน์เฉพาะกับ -d, -D,หรือ
-r.
-m เครื่อง
--สถาปัตยกรรม=เครื่อง
ระบุสถาปัตยกรรมที่จะใช้เมื่อแยกส่วนประกอบไฟล์อ็อบเจ็กต์ สิ่งนี้มีประโยชน์
เมื่อแยกส่วนไฟล์อ็อบเจ็กต์ที่ไม่อธิบายข้อมูลสถาปัตยกรรม เช่น
เป็น S-records คุณสามารถแสดงรายการสถาปัตยกรรมที่มีอยู่ด้วย -i ตัวเลือก
-M ตัวเลือก
--disassembler-ตัวเลือก=ตัวเลือก
ส่งข้อมูลเฉพาะเป้าหมายไปยังตัวแยกชิ้นส่วน รองรับเฉพาะบางเป้าหมาย
หากจำเป็นต้องระบุตัวเลือก disassembler มากกว่าหนึ่งตัว ให้เลือกหลายตัว -M
สามารถใช้ตัวเลือกหรือสามารถรวมกันเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค
หากเป้าหมายเป็นสถาปัตยกรรม ARM สามารถใช้สวิตช์นี้เพื่อเลือก
ใช้ชุดชื่อรีจิสเตอร์ในระหว่างการถอดประกอบ ระบุ -M reg-ชื่อ-std (
ค่าเริ่มต้น) จะเลือกชื่อรีจิสเตอร์ตามที่ใช้ในชุดคำสั่งของ ARM
เอกสารประกอบ แต่ด้วยการลงทะเบียน 13 ชื่อ 'sp' การลงทะเบียน 14 ชื่อ 'lr' และการลงทะเบียน
15 เรียกว่า 'พีซี' ระบุ -M reg-name-apcs จะเลือกชื่อชุดที่ใช้โดยARM
ขั้นตอนการโทรมาตรฐานในขณะที่ระบุ -M ลงทะเบียนชื่อดิบ จะใช้ r ตาม
ตามหมายเลขทะเบียน
นอกจากนี้ยังมีรูปแบบการตั้งชื่อการลงทะเบียน APCS สองแบบที่เปิดใช้งานโดย -M ทะเบียน-
ชื่อ-atpcs และ -M reg-ชื่อพิเศษ atpcs ซึ่งใช้การเรียกขั้นตอน ARM/Thumb
ข้อตกลงการตั้งชื่อมาตรฐาน (ไม่ว่าจะด้วยชื่อทะเบียนปกติหรือแบบพิเศษ
ลงทะเบียนชื่อ).
ตัวเลือกนี้ยังสามารถใช้สำหรับสถาปัตยกรรม ARM เพื่อบังคับให้ตัวถอดประกอบเป็น
แปลคำสั่งทั้งหมดเป็นคำสั่ง Thumb โดยใช้สวิตช์
--disassembler-options=แรง-นิ้วหัวแม่มือ. สิ่งนี้มีประโยชน์เมื่อพยายามถอดแยกชิ้นส่วน
รหัสหัวแม่มือที่ผลิตโดยคอมไพเลอร์อื่น
สำหรับ x86 บางตัวเลือกจะทำซ้ำฟังก์ชันของ -m เปลี่ยน แต่ให้ปลีกย่อย
การควบคุมเม็ดเล็ก การเลือกหลายรายการจากตัวเลือกต่อไปนี้อาจระบุเป็นเครื่องหมายจุลภาค
สตริงที่แยกจากกัน x86-64, i386 และ i8086 เลือกถอดแยกชิ้นส่วนสำหรับที่กำหนด
สถาปัตยกรรม. Intel และ ไปยัง เลือกระหว่างโหมดไวยากรณ์ของ Intel และโหมดไวยากรณ์ของ AT&T
แอดเดรส32, แอดเดรส16, data32 และ data16 ระบุขนาดที่อยู่เริ่มต้นและขนาดตัวถูกดำเนินการ
สี่ตัวเลือกนี้จะถูกแทนที่ถ้า x86-64, i386 or i8086 ปรากฏในภายหลังใน
สตริงตัวเลือก สุดท้ายนี้ วิภัตติเมื่ออยู่ในโหมด AT&T ให้สั่งให้ disassembler พิมพ์
คำต่อท้ายช่วยในการจำแม้ว่าคำต่อท้ายสามารถอนุมานได้โดยตัวถูกดำเนินการ
สำหรับ กปปส. บุ๊ค, booke32 และ booke64 เลือกการถอดประกอบคำแนะนำของ BookE 32 และ
64 เลือกถอดแยกชิ้นส่วน PowerPC และ PowerPC64 ตามลำดับ
สำหรับ MIPS ตัวเลือกนี้จะควบคุมการพิมพ์ชื่อช่วยในการจำคำสั่งและ
ลงทะเบียนชื่อในคำแนะนำในการถอดประกอบ หลายตัวเลือกจากต่อไปนี้
อาจถูกระบุเป็นสตริงที่คั่นด้วยเครื่องหมายจุลภาค และตัวเลือกที่ไม่ถูกต้องจะถูกละเว้น:
"ไม่มีนามแฝง"
พิมพ์คำสั่ง 'ดิบ' ช่วยในการจำแทนคำสั่งหลอก
ช่วยในการจำ IE พิมพ์ 'daddu' หรือ 'or' แทน 'move', 'sll' แทน 'nop'
เป็นต้น
"gpr-names=เอบีไอ"
พิมพ์ชื่อ GPR (ทะเบียนเอนกประสงค์) ตามความเหมาะสมสำหรับ ABI ที่ระบุ
โดยค่าเริ่มต้น ชื่อ GPR จะถูกเลือกตาม ABI ของไบนารีเป็น
ถอดประกอบ
"fpr-names=เอบีไอ"
พิมพ์ชื่อ FPR (การลงทะเบียนจุดลอยตัว) ตามความเหมาะสมกับ ABI ที่ระบุ
ตามค่าเริ่มต้น หมายเลข FPR จะถูกพิมพ์แทนที่จะเป็นชื่อ
"cp0-names=โค้ง"
พิมพ์ CP0 (ตัวประมวลผลร่วมการควบคุมระบบ ตัวประมวลผลร่วม 0) ลงทะเบียนชื่อเป็น
เหมาะสมกับ CPU หรือสถาปัตยกรรมที่ระบุโดย โค้ง. โดยค่าเริ่มต้น CP0
ชื่อการลงทะเบียนถูกเลือกตามสถาปัตยกรรมและ CPU ของไบนารี
กำลังถอดประกอบ
"hwr-names=โค้ง"
พิมพ์ชื่อ HWR (การลงทะเบียนฮาร์ดแวร์ ใช้โดยคำสั่ง "rdhwr") เป็น
เหมาะสมกับ CPU หรือสถาปัตยกรรมที่ระบุโดย โค้ง. โดยค่าเริ่มต้น HWR ชื่อ
ถูกเลือกตามสถาปัตยกรรมและ CPU ของไบนารีที่เป็นอยู่
ถอดประกอบ
"ชื่อเร็ก=เอบีไอ"
พิมพ์ชื่อ GPR และ FPR ตามความเหมาะสมกับ ABI ที่เลือก
"ชื่อเร็ก=โค้ง"
พิมพ์ชื่อรีจิสเตอร์เฉพาะ CPU (รีจิสเตอร์ CP0 และชื่อ HWR) ตามความเหมาะสมสำหรับ
CPU หรือสถาปัตยกรรมที่เลือก
สำหรับตัวเลือกใด ๆ ที่ระบุไว้ข้างต้น ช่วยเหลือ or โค้ง อาจระบุเป็น เป็นตัวเลข เพื่อที่จะมี
ตัวเลขที่พิมพ์แทนชื่อสำหรับประเภททะเบียนที่เลือก คุณสามารถแสดงรายการ
ค่าที่มีอยู่ของ ช่วยเหลือ และ โค้ง โดยใช้โปรแกรม --ช่วยด้วย ตัวเลือก
-p
--ส่วนหัวส่วนตัว
พิมพ์ข้อมูลเฉพาะสำหรับรูปแบบไฟล์อ็อบเจ็กต์ ข้อมูลที่แน่นอน
พิมพ์ขึ้นอยู่กับรูปแบบไฟล์อ็อบเจ็กต์ สำหรับรูปแบบไฟล์อ็อบเจ็กต์บางรูปแบบ no
ข้อมูลเพิ่มเติมจะถูกพิมพ์
-r
--ย้าย
พิมพ์รายการย้ายตำแหน่งของไฟล์ ถ้าใช้กับ -d or -D, การย้ายถิ่นฐานคือ
พิมพ์สลับกับการถอดประกอบ
-R
--ไดนามิก-reloc
พิมพ์รายการย้ายตำแหน่งแบบไดนามิกของไฟล์ สิ่งนี้มีความหมายสำหรับไดนามิกเท่านั้น
อ็อบเจ็กต์ เช่น ไลบรารีที่แบ่งใช้บางประเภท
-s
--เนื้อหาเต็ม
แสดงเนื้อหาทั้งหมดของส่วนใด ๆ ที่ร้องขอ โดยค่าเริ่มต้นทั้งหมดไม่ว่างเปล่า
จะแสดงส่วนต่างๆ
-S
--แหล่งที่มา
แสดงซอร์สโค้ดผสมกับการถอดแยกชิ้นส่วน ถ้าเป็นไปได้ หมายถึง -d.
--โชว์ดิบอินส์
เมื่อถอดประกอบคำสั่ง ให้พิมพ์คำสั่งเป็นฐานสิบหกและสัญลักษณ์
รูปร่าง. นี่เป็นค่าเริ่มต้นยกเว้นเมื่อ --prefix-ที่อยู่ ถูกนำมาใช้.
--no-show-ดิบ-insn
เมื่อถอดประกอบคำสั่ง ห้ามพิมพ์ไบต์ของคำสั่ง นี้เป็น
ค่าเริ่มต้นเมื่อ --prefix-ที่อยู่ ถูกนำมาใช้.
-G
--แทง
แสดงเนื้อหาทั้งหมดของส่วนใด ๆ ที่ร้องขอ แสดงเนื้อหาของ
.stab และ .stab.index และ .stab.excl ส่วนจากไฟล์ ELF สิ่งนี้มีประโยชน์เท่านั้น
บนระบบ (เช่น Solaris 2.0) ที่ ".stab" การดีบักรายการตารางสัญลักษณ์เป็น
ดำเนินการในส่วนเอลฟ์ ในรูปแบบไฟล์อื่นๆ ส่วนใหญ่ การดีบักรายการตารางสัญลักษณ์
ถูกสอดแทรกด้วยสัญลักษณ์เชื่อมโยง และมองเห็นได้ใน --ซิมส์ เอาท์พุต
--เริ่มต้นที่อยู่=ที่อยู่
เริ่มแสดงข้อมูลตามที่อยู่ที่ระบุ สิ่งนี้ส่งผลต่อผลลัพธ์ของ -d, -r
และ -s ตัวเลือก
--stop-ที่อยู่=ที่อยู่
หยุดแสดงข้อมูลตามที่อยู่ที่ระบุ สิ่งนี้ส่งผลต่อผลลัพธ์ของ -d, -r
และ -s ตัวเลือก
-t
--ซิมส์
พิมพ์รายการตารางสัญลักษณ์ของไฟล์ นี้คล้ายกับข้อมูล
จัดทำโดย nm โครงการ
-T
--ไดนามิก-syms
พิมพ์รายการตารางสัญลักษณ์ไดนามิกของไฟล์ สิ่งนี้มีความหมายสำหรับ .เท่านั้น
ออบเจ็กต์ไดนามิก เช่น ไลบรารีที่แบ่งใช้บางประเภท สิ่งนี้คล้ายกับ
ข้อมูลที่จัดทำโดย nm โปรแกรมเมื่อได้รับ -D (--พลวัต) ตัวเลือก
--พิเศษ-syms
เมื่อแสดงสัญลักษณ์ ให้หมายความรวมถึงสัญลักษณ์ที่เป้าหมายถือว่าพิเศษในบางส่วนด้วย
ทางและที่ปกติจะไม่เป็นที่สนใจของผู้ใช้
-V
--รุ่น
พิมพ์หมายเลขเวอร์ชันของ ขยะ และออก
-x
--ส่วนหัวทั้งหมด
แสดงข้อมูลส่วนหัวที่มีอยู่ทั้งหมด รวมทั้งตารางสัญลักษณ์และการย้ายตำแหน่ง
รายการ. โดยใช้ -x เทียบเท่ากับการระบุทั้งหมดของ -a -f -h -p -r -t.
-w
--กว้าง
จัดรูปแบบบางบรรทัดสำหรับอุปกรณ์ส่งออกที่มีมากกว่า 80 คอลัมน์ อย่าเลย
ตัดทอนชื่อสัญลักษณ์เมื่อปรากฏขึ้น
-z
--ถอดชิ้นส่วน-ศูนย์
โดยปกติเอาต์พุตการแยกส่วนจะข้ามบล็อกของศูนย์ ตัวเลือกนี้ชี้นำ
disassembler เพื่อแยกชิ้นส่วนบล็อกเหล่านั้น เช่นเดียวกับข้อมูลอื่น ๆ
ใช้ h8300-hms-objdump ออนไลน์โดยใช้บริการ onworks.net