ภาษาอังกฤษภาษาฝรั่งเศสสเปน

Ad


ไอคอน Fav ของ OnWorks

abicheck - ออนไลน์ในคลาวด์

เรียกใช้ abicheck ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง abicheck ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


abicheck - ตรวจสอบไบนารีของแอปพลิเคชันสำหรับการเรียกไปยังสัญลักษณ์ส่วนตัวหรือการพัฒนาใน
ไลบรารีและสำหรับการเชื่อมโยงแบบคงที่ของไลบรารีบางระบบ

เรื่องย่อ


อาบีเช็ค [-h] [-k] [-a] [-I] [-v] [-f รายการไฟล์] [-หรือ ไฟล์นอก] [-NS ลวดลาย] [-จ ลวดลาย] [-NS
งาน] [-ล ห้องสมุด] [-ล เส้นทาง] [(-s|-ส) ฐานข้อมูลไฟล์] [(-ง|-ง) ฐานข้อมูลไฟล์] [-โอ ฐานข้อมูลไฟล์] [-NS
รายการไฟล์] ไฟล์

DESCRIPTION


อาบีเช็ค ทำงานบนไบนารีของแอปพลิเคชันและออกคำเตือนเมื่อใดก็ตามที่มีดังต่อไปนี้
ตรวจพบสามเงื่อนไข:

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

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

· คงที่ การเชื่อมโยง การลิงก์แบบคงที่ของไลบรารีระบบ (เช่น libc.a) ลงใน an
แอปพลิเคชันโดยทั่วไปไม่ใช่ความคิดที่ดีเพราะรหัสไลบรารีระบบ "ล็อก" ลงใน
ไบนารีของแอปพลิเคชันอาจเข้ากันไม่ได้กับระบบรุ่นที่ใหม่กว่า abicheck
พยายามตรวจหาการเชื่อมโยงแบบคงที่ของไลบรารีระบบบางตัว

พฤติกรรมเริ่มต้นคือ สำหรับแต่ละอ็อบเจ็กต์ไบนารีที่ตรวจสอบ เพื่อตรวจสอบการเรียกโดยตรงจากนั้น
วัตถุไบนารีเท่านั้น NS -l ตัวเลือกช่วยให้ไลบรารีที่วัตถุไบนารีนำเข้ามามี
ตรวจสอบการโทรของพวกเขาด้วย

OPTIONS


รองรับตัวเลือกต่อไปนี้:

-k ตรวจสอบไบนารีต่อไปแม้ว่าจะมีข้อผิดพลาดร้ายแรง (รายงานตัวเชื่อมโยงแบบไดนามิก
สัญลักษณ์ที่ไม่ได้รับการแก้ไข แอลดีดี(1) ความล้มเหลว ไม่พบสัญลักษณ์)

-h พิมพ์ความช่วยเหลือแบบยาว

-v ละเอียด พิมพ์ข้อมูลเพิ่มเติม

-f รายการไฟล์
พื้นที่ รายการไฟล์ เป็นไฟล์ที่มีรายการไบนารีอ็อบเจกต์ที่จะตรวจสอบ หนึ่งไฟล์ต่อบรรทัด
รายการนี้ต่อท้ายไฟล์ใดๆ ที่ให้ไว้เป็นอาร์กิวเมนต์บนบรรทัดคำสั่ง ถ้า
รายการไฟล์ คือ "-" จากนั้นใช้ stdin

-o ออกจากไฟล์
เขียนเอาต์พุตไปที่ ออกจากไฟล์ แทนที่จะเป็น stdout

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

หากเป็นส่วนประกอบของ regex Belt hold มีสองโคลอนในแถว: แพท1::แพท2,
จากนั้นการจับคู่ระดับสัญลักษณ์จะเปิดใช้งานโดยตรวจสอบว่า รุ่น::สัญลักษณ์ or
ห้องสมุด::สัญลักษณ์ ที่ตรงกัน Belt hold (โดยที่ชื่อสัญลักษณ์ รุ่น (ถ้ามี) และ
ชื่อฐานห้องสมุดถูกแทนที่ด้วย เครื่องหมาย, รุ่นและ ห้องสมุด) ตัวอย่างเช่น,

-p 'FOO_VERS.*::_foopriv'
or
-p 'libfoo.so.*::_foopriv'

-e Belt hold
เหมือนกับ -p แต่สำหรับอินเทอร์เฟซ "ที่กำลังพัฒนา"

-L ldpath
ตั้ง LD_LIBRARY_PATH ตัวแปรสภาพแวดล้อมถึง ldpath ก่อนที่จะเรียกใช้ไดนามิก
ลิงเกอร์ ใช้ -L "" เพื่อยกเลิกการตั้งค่า LD_LIBRARY_PATH

หากเป็นส่วนประกอบหนึ่งของ ldpath คือสตริง "find" จากนั้นไลบรารีที่แชร์ทั้งหมด
in ไฟล์ ถูกพบและเส้นทางของพวกเขาถูกแทรกเข้าไปในตำแหน่ง "ค้นหา" สังเกตว่า
คำสั่งซื้อจะสุ่ม

-l ห้องสมุด
เพิ่มชื่อฐานหรือชื่อพาธแบบเต็มของไลบรารีที่ใช้ร่วมกัน ห้องสมุด ไปที่รายการ
วัตถุที่จะตรวจสอบสำหรับการโทรแบบส่วนตัว ตัวเลือกนี้อาจเกิดขึ้นมากกว่า
เมื่ออยู่บนบรรทัดคำสั่งและเป็นส่วนเสริม โดยค่าเริ่มต้น เฉพาะสายตรงจากa
มีการตรวจสอบไบนารีไปยังไลบรารีระบบ NS -l สวิตช์ช่วยให้ตรวจสอบ
การโทรทางอ้อม เช่น แอป -> supportlib -> systemlib

-a วนซ้ำไบนารีทั้งหมดก่อนที่จะตรวจสอบและรวบรวมรายการแชร์ทั้งหมด
วัตถุ นำชื่อฐานของแต่ละอ็อบเจ็กต์ที่ใช้ร่วมกันที่พบและทำตัวเหมือนเป็น
ระบุด้วย -l ตัวเลือกตัวเลือกแล้วเรียกใช้การตรวจสอบ abicheck ทางนี้,
การโทรจากออบเจกต์ "ภายในแอปพลิเคชัน" ทั้งหมดจะถูกตรวจสอบมากกว่าเพียงแค่
สายตรง. (มีประโยชน์เมื่ออ็อบเจ็กต์ที่ใช้ร่วมกันไม่มีการขึ้นต่อกัน
บันทึกไว้)

-I ละเว้นไลบรารีที่ใช้ร่วมกันในการตรวจสอบ ตรวจสอบเฉพาะโปรแกรมเรียกทำงาน เข้ากันได้กับ -NS,
ห้องสมุดจะถูกค้นหาก่อน แต่ไม่ได้ตรวจสอบ

-d ฐานข้อมูล, -D dbfile.dbfile
ระบุฐานข้อมูลสัญลักษณ์ไฟล์แฟลตแบ็คสำรองสำหรับไดนามิก (สาธารณะกับส่วนตัว)
ทดสอบ. การจัดประเภทเหล่านี้จะถูกนำมาใช้หากไลบรารีไม่มีเวอร์ชัน (เช่น
การจัดประเภทไม่มีอยู่ในห้องสมุดเอง) ใช้ -D เพื่อแสดงว่าเท่านั้น
ข้อมูลจาก dbfile.dbfile ควรใช้ เส้นใน dbfile.dbfile สามารถเป็นหนึ่งในนั้นได้
แบบฟอร์ม:

ห้องสมุด|สัญลักษณ์
ห้องสมุด|คลาส|สัญลักษณ์
ห้องสมุด|FILE=เส้นทาง

ห้องสมุด ต้องเป็นเส้นทางแบบเต็มไปยังไลบรารีที่จะระบุ (ไม่สามารถ a
ชื่อฐาน)

เครื่องหมายแบบฟอร์มแรก เครื่องหมาย เป็นส่วนตัว

เครื่องหมายรูปแบบที่สอง เครื่องหมาย กับ ชั้น ที่ไหน ชั้น อาจเป็นสาธารณะ ส่วนตัว หรือ
การพัฒนา

รูปแบบที่สามระบุไฟล์ เส้นทาง ควรเปิดตามความต้องการเมื่อ ห้องสมุด is
ครั้งแรกที่เจอ ไฟล์ เส้นทาง มีบรรทัดของสองรูปแบบแรกยกเว้น the
ห้องสมุด สนาม. รูปแบบที่สามคือการเร่งเพื่อหลีกเลี่ยงการประมวลผลการจำแนกหลายประเภท
บรรทัดสำหรับไลบรารีที่ไม่เคยพบในการรัน

-O dbfile.dbfile
ระบุไฟล์แทนที่เพื่อแก้ไขการจัดประเภทสัญลักษณ์สำหรับไดนามิก
(สาธารณะกับส่วนตัว) การทดสอบ รูปแบบสำหรับไฟล์แทนที่มีลักษณะดังนี้:

ห้องสมุด|สัญลักษณ์|คลาส

ไลบรารีสามารถเป็นพาธแบบเต็มหรือชื่อฐานได้ หากไลบรารี่คือ "__SKIP__" สัญลักษณ์
จะถูกละเว้นสำหรับไลบรารีใด ๆ ที่พบใน คลาสสามารถเป็น "สาธารณะ"
"ส่วนตัว" "กำลังพัฒนา" หรือ "ถูกลบ" คลาส "ถูกลบ" เป็นกรณีพิเศษ หมายถึง
สัญลักษณ์ถูกลบออกจากห้องสมุดในบางรุ่น สัญลักษณ์ "__ALL__" สำหรับ
คลาส "ลบ" หมายความว่าไลบรารีทั้งหมดถูกลบหรือไม่เสถียร
ใช้.

ตัวอย่าง:

libfoo.so.1|__bar|ส่วนตัว
/lib/libxyz.so.1|baz|สาธารณะ
__ข้าม__|__fputwc_xpg5

การตั้งค่าเหล่านี้จะแทนที่การจัดประเภทใดๆ ภายในไลบรารี (จาก library
รุ่น หาได้จาก พีวีเอส(1) เป็นต้น)

-A รายการไฟล์
ตั้งค่าไลบรารี ABI ที่น่าสนใจให้กับไลบรารีที่ระบุไว้ใน รายการไฟล์ (เต็ม
ชื่อพาธ หนึ่งชื่อต่อบรรทัด) เฉพาะการโทรเข้าไลบรารีเหล่านี้เท่านั้นที่จะถูกตรวจสอบ ทั้งหมด
การเรียกห้องสมุดอื่น ๆ จะถูกละเว้น

-s ฐานข้อมูล, -S dbfile.dbfile
ระบุฐานข้อมูลสัญลักษณ์ที่ครอบคลุมมากขึ้นสำหรับการทดสอบการลิงก์แบบสแตติก dbfile.dbfile อาจจะ
รายการไฟล์ที่คั่นด้วยเครื่องหมายจุลภาค หากไฟล์เป็นไฟล์เก็บถาวรแบบคงที่ (lib*.a) ไฟล์จะเป็น
ประมวลผลเพื่อแยกสัญลักษณ์ มิฉะนั้นจะเป็นไฟล์ฐานข้อมูลที่ประกอบด้วย
บรรทัดของสัญลักษณ์แบบฟอร์ม|library:module ตัวอย่างเช่น:

shmat|/usr/lib/libc.a:shmsys.o
shmctl|/usr/lib/libc.a:shmsys.o
shmdt|/usr/lib/libc.a:shmsys.o
shmget|/usr/lib/libc.a:shmsys.o
...

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

ใช้ -S int เพื่อทำการตรวจสอบลิงก์แบบคงที่และใช้ฐานข้อมูลภายในเท่านั้น

ใช้ -s ไม่มี or -S ไม่มี เพื่อข้ามการตรวจสอบการเชื่อมโยงแบบคงที่ทั้งหมด

-j งาน
วิ่ง งาน ควบคู่ไปกับกระบวนการที่แยกจากกัน หมายถึง -k. มีวัตถุประสงค์หลักสำหรับ
เครื่อง CPU หลายเครื่องโดยที่ งาน ควรใกล้เคียงกับจำนวนโปรเซสเซอร์
เอาต์พุตถูกรวบรวมในไฟล์ tmp และพิมพ์ทั้งหมดพร้อมกันเมื่อใกล้สิ้นสุดการรัน as
แต่ละงานเสร็จสิ้น

If งาน คือ "-", "ตรวจจับ" หรือ "n" แล้ว งาน จะถูกตั้งค่าเป็นตัวเลขขึ้นอยู่กับ
จำนวนโปรเซสเซอร์ในเครื่องปัจจุบัน (หากสามารถกำหนดได้)

ตัวดำเนินการ


รองรับตัวถูกดำเนินการต่อไปนี้:

ไฟล์ รายการวัตถุไบนารีของแอปพลิเคชันที่จะตรวจสอบ

เอาท์พุท


มีหนึ่งบรรทัดต่อปัญหา (อาจมีปัญหาหลายอย่างต่อการตรวจสอบไบนารี) ซึ่ง
มีลักษณะดังต่อไปนี้:

หากไม่พบปัญหา:
ชื่อไฟล์: ตกลง

หากใช้สัญลักษณ์ส่วนตัว:
ชื่อไฟล์: ส่วนตัว (ห้องสมุด:รุ่นส่วนตัว) ส่วนตัว_sym

หากมีการพัฒนาการใช้สัญลักษณ์:
ชื่อไฟล์: วิวัฒนาการ (ห้องสมุด:วิวัฒนาการ_vers) วิวัฒนาการ_sym

หากไฟล์ลิงก์แบบสแตติกในไลบรารีไฟล์เก็บถาวรของระบบ:
ชื่อไฟล์: STATIC_LINK (เก็บ)

หากข้ามการตรวจสอบไฟล์:
ชื่อไฟล์: ข้าม (เหตุผล)

ภายใต้การใช้คลาสที่ถูกลบใน -O แทนที่ตัวเลือกไฟล์ ปัญหาเหล่านี้อาจเป็น
พบ:

หากสัญลักษณ์ถูกลบออกจากไลบรารีในบางรุ่น:
ชื่อไฟล์: DELETED_SYM: เครื่องหมาย/ห้องสมุด

(ห้องสมุด จะเป็น "unbound" หากสัญลักษณ์ไม่ถูกผูกไว้)

หากห้องสมุดทั้งหมดถูกลบในบางรุ่นหรือไม่เสถียรถึง
ใช้:
ชื่อไฟล์: UNSTABLE_LIB: ห้องสมุด-soname = ห้องสมุด-เส้นทาง

(ห้องสมุด-เส้นทาง อาจเป็น "ไม่พบไฟล์" หากไม่พบไลบรารี)

ปัญหาต่อไปนี้จะทำให้เกิดข้อผิดพลาดร้ายแรงเว้นแต่ -k ใช้ตัวเลือก:

หากตัวเชื่อมโยงแบบไดนามิกไม่สามารถแก้ไขได้ N สัญลักษณ์เมื่อ แอลดีดี -r ถูกเรียกใช้:
ชื่อไฟล์: UNBOUND_SYMBOLS: N

หากตัวเชื่อมโยงแบบไดนามิกไม่พบการเชื่อมโยงแบบไดนามิก:
ชื่อไฟล์: NO_BINDINGS

If แอลดีดี -r กับ LD_DEBUG=ไฟล์,การโยง ล้มเหลว:
ชื่อไฟล์: LDD_ERROR

ในสามกรณีหลังนี้เรียกใช้ แอลดีดี -r ในไฟล์ไบนารีสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ what
ผิดพลาด (โปรดทราบว่า อาบีเช็ค ทำงาน แอลดีดี -r กับ LD_DEBUG=ไฟล์,การโยง ชุด). บางอย่าง
ระบบที่ตัวเชื่อมโยงแบบไดนามิกจะไม่ประมวลผลโปรแกรม SUID ด้วย LD_DEBUG ชุด (นี้มักจะ
ผลลัพธ์ใน NO_BINDINGS ใน อาบีเช็ค เอาท์พุท)

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

EXIT สถานภาพ


ค่าทางออกต่อไปนี้จะถูกส่งคืน:

0 ไม่มีข้อผิดพลาดและไม่พบปัญหา

1 เกิดข้อผิดพลาดร้ายแรง

2 ไม่มีข้อผิดพลาดร้ายแรงเกิดขึ้น แต่ระบบไบนารีบางตัวมีปัญหาที่ตรวจพบ

หมายเหตุ


เฉพาะวัตถุ ELF เท่านั้นที่ถูกตรวจสอบ

ตัว Vortex Indicator ได้ถูกนำเสนอลงในนิตยสาร -s -S -d และ -O dbfiles อักขระ '#' เริ่มต้นบรรทัดความคิดเห็นตามปกติ

ยกเว้นในกรณีที่ใช้การจับคู่แบบกำหนดเอง "::" ที่จัดเตรียมผ่าน -p or -e ธง abicheck can
ตรวจสอบกับไลบรารีระบบที่มีการกำหนดเวอร์ชันสัญลักษณ์เท่านั้น (เช่น
ข้อมูลส่วนตัวและ/หรือข้อมูลที่พัฒนาขึ้นสำหรับสัญลักษณ์แต่ละตัวในห้องสมุด)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดเวอร์ชันสัญลักษณ์ โปรดดูที่ "คู่มือ Solaris Linker และไลบรารี"
สมุดคำตอบที่ URL http://docs.sun.com/ab2/coll.45.13 และ Commands/Version-Script
ส่วนของหน้าข้อมูล GNU linker "ld"

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

ชื่อไฟล์คี่ที่มีอักขระเครื่องหมายคำพูดเดียวหรือขึ้นบรรทัดใหม่จะถูกข้าม เช่น
อักขระรบกวนการเรียกคำสั่งผ่านเชลล์

ในการเรียกไดเรกทอรี่ใช้ พบ(1) และรวบรวมเอาท์พุตไปยังไฟล์เพื่อใช้กับ
-f ตัวเลือกหรือในท่อผ่านทาง:

หา ... | abicheck -f - ...

ใช้ abicheck ออนไลน์โดยใช้บริการ onworks.net


เซิร์ฟเวอร์และเวิร์กสเตชันฟรี

ดาวน์โหลดแอพ Windows & Linux

คำสั่ง Linux

Ad