GoGPT Best VPN GoSearch

ไอคอน Fav ของ OnWorks

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

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

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

โครงการ:

ชื่อ


strace - ติดตามการโทรและสัญญาณของระบบ

เรื่องย่อ


สเตรซ [-CdffhikqrtttTvVxxy] [-In] [-bผู้บริหาร] [-eด่วน--aคอลัมน์]
[-oไฟล์] [-sขนาด] [-Pเส้นทาง] ... -ppid--D] [-Eคือ[=คลื่น-
[-uชื่อผู้ใช้] คำสั่ง [args]

สเตรซ -c[df] [-In] [-bผู้บริหาร] [-eด่วน--Oเหนือศีรษะ] [-Sเรียงลำดับ]
-ppid--D] [-Eคือ[=คลื่น--uชื่อผู้ใช้] คำสั่ง [args]

DESCRIPTION


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

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

แต่ละบรรทัดในการติดตามมีชื่อการเรียกของระบบ ตามด้วย
อาร์กิวเมนต์ในวงเล็บและค่าที่ส่งกลับ ตัวอย่างจาก
การติดตามคำสั่ง "cat /dev/null" คือ:

open("/dev/null", O_RDONLY) = 3

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

open("/foo/bar", O_RDONLY) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)

สัญญาณจะถูกพิมพ์เป็นสัญลักษณ์สัญญาณและโครงสร้าง siginfo ที่ถอดรหัส หนึ่ง
ข้อความที่ตัดตอนมาจากการติดตามและขัดจังหวะคำสั่ง "sleep 666" คือ:

sigsuspend([])
--- ลายเซ็น {si_signo=SIGINT, si_code=SI_USER, si_pid=...} ---
+++ ถูกฆ่าโดย SIGINT +++

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

[pid 28772] เลือก (4, [3], NULL, NULL, NULL
[pid 28779] clock_gettime(CLOCK_REALTIME, {1130322148, 939977000}) = 0
[pid 28772] <... เลือกดำเนินการต่อ> ) = 1 (ใน [3])

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

อ่าน(0, 0x7ffff72cf5cf, 1) = ? ERESTARTSYS (จะเริ่มต้นใหม่)
--- ซิกัล RM ... ---
rt_sigreturn(0xอี) = 0
อ่าน (0, "", 1) = 0

อาร์กิวเมนต์ถูกพิมพ์ในรูปแบบสัญลักษณ์ด้วยความหลงใหล ตัวอย่างนี้
แสดงเชลล์ดำเนินการเปลี่ยนเส้นทางเอาต์พุต ">>xyzzy":

open("xyzzy", O_WRONLY|O_APPEND|O_CREAT, 0666) = 3

ที่นี่อาร์กิวเมนต์ที่สามของ open ถูกถอดรหัสโดยการทำลายแฟล็ก
อาร์กิวเมนต์เป็นสามองค์ประกอบ bitwise-OR และพิมพ์โหมด
ค่าในฐานแปดตามประเพณี เมื่อการใช้งานแบบดั้งเดิมหรือแบบพื้นเมืองแตกต่างกัน
จาก ANSI หรือ POSIX ควรใช้แบบฟอร์มหลัง ในบางกรณี,
สเตรซ ผลลัพธ์ได้รับการพิสูจน์แล้วว่าสามารถอ่านได้ง่ายกว่าแหล่งที่มา

ตัวชี้โครงสร้างถูกละเลยและสมาชิกจะแสดงเป็น
เหมาะสม. ในทุกกรณีอาร์กิวเมนต์มีรูปแบบ C-like . มากที่สุด
แฟชั่นที่เป็นไปได้ ตัวอย่างเช่น สาระสำคัญของคำสั่ง "ls -l
/dev/null" ถูกจับเป็น:

lstat("/dev/null", {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0

สังเกตว่าอาร์กิวเมนต์ 'struct stat' ถูกละเลยการอ้างอิงอย่างไร และแต่ละอาร์กิวเมนต์เป็นอย่างไร
สมาชิกจะแสดงเป็นสัญลักษณ์ โดยเฉพาะอย่างยิ่ง สังเกตว่า
สมาชิก st_mode ถูกถอดรหัสอย่างระมัดระวังเป็นบิต-OR ของสัญลักษณ์และ
ค่าตัวเลข สังเกตในตัวอย่างนี้ด้วยว่าอาร์กิวเมนต์แรกของ
lstat เป็นอินพุตสำหรับการเรียกของระบบและอาร์กิวเมนต์ที่สองคือ an
เอาท์พุท เนื่องจากอาร์กิวเมนต์เอาต์พุตจะไม่ถูกแก้ไขหากระบบเรียก
ล้มเหลว อาร์กิวเมนต์อาจไม่ได้รับการอ้างอิงเสมอไป เช่น ลองใหม่อีกครั้ง
ตัวอย่าง "ls -l" ที่มีไฟล์ที่ไม่มีอยู่จริงจะสร้างสิ่งต่อไปนี้
สาย:

lstat("/foo/bar", 0xb004) = -1 ENOENT (ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว)

ในกรณีนี้ ไฟที่ระเบียงเปิดอยู่แต่ไม่มีใครอยู่บ้าน

ตัวชี้อักขระจะถูกยกเลิกการอ้างอิงและพิมพ์เป็นสตริง C ไม่ใช่-
อักขระการพิมพ์ในสตริงปกติจะแสดงด้วย C . ธรรมดา
รหัสหลบหนี คนแรกเท่านั้น ขนาด (32 โดยค่าเริ่มต้น) ไบต์ของสตริง
ถูกพิมพ์; สตริงที่ยาวกว่าจะมีจุดไข่ปลาต่อท้าย
ใบเสนอราคาปิด นี่คือบรรทัดจาก "ls -l" โดยที่ getpwuid ห้องสมุด
รูทีนกำลังอ่านไฟล์รหัสผ่าน:

read(3, "root::0:0:System Administrator:/"..., 1024) = 422

ในขณะที่โครงสร้างมีคำอธิบายประกอบโดยใช้วงเล็บปีกกา ตัวชี้อย่างง่าย และ
อาร์เรย์พิมพ์โดยใช้วงเล็บเหลี่ยมโดยคั่นด้วยเครื่องหมายจุลภาค
องค์ประกอบ นี่คือตัวอย่างจากคำสั่ง "id" บนระบบ with
รหัสกลุ่มเสริม:

กลุ่มรับ (32, [100, 0]) = 2

ในทางกลับกัน ชุดบิตยังแสดงโดยใช้วงเล็บเหลี่ยมแต่
องค์ประกอบชุดจะถูกคั่นด้วยช่องว่างเท่านั้น นี่คือเปลือก
เตรียมดำเนินการคำสั่งภายนอก:

sigprocmask(SIG_BLOCK, [CHLD TTOU], []) = 0

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

sigprocmask(SIG_UNBLOCK, ~[], NULL) = 0

ในที่นี้ อาร์กิวเมนต์ที่สองแสดงถึงชุดสัญญาณทั้งหมด

OPTIONS


-c นับเวลา การโทร และข้อผิดพลาดสำหรับการเรียกแต่ละระบบ
และรายงานสรุปการออกโปรแกรม บนลินุกซ์
นี้พยายามที่จะแสดงเวลาของระบบ (เวลา CPU ที่ใช้
ทำงานในเคอร์เนล) โดยไม่ขึ้นกับนาฬิกาแขวน
เวลา. ถ้า -c ใช้กับ -f or -F (ด้านล่าง) เท่านั้น
ยอดรวมสำหรับกระบวนการที่ติดตามทั้งหมดจะถูกเก็บไว้

-C Like -c แต่ยังพิมพ์เอาต์พุตปกติในขณะที่
กระบวนการกำลังทำงาน

-D เรียกใช้กระบวนการติดตามเป็นหลานที่แยกออกมาไม่ใช่เป็น
ผู้ปกครองของผู้ตามรอย สิ่งนี้จะลดการมองเห็น
ผลกระทบของ สเตรซ โดยรักษาผู้ตามรอยโดยตรง
ลูกของกระบวนการโทร

-d แสดงผลลัพธ์การดีบักบางอย่างของ สเตรซ ตัวเองบน
มาตรฐานบกพร่อง.

-f ติดตามกระบวนการย่อยตามที่ถูกสร้างขึ้นโดย
ปัจจุบันติดตามกระบวนการอันเป็นผลมาจาก
ส้อม(2) ส้อม(2) และ โคลน(2) การเรียกระบบ บันทึก
ที่ -p PID -f จะแนบเธรดของกระบวนการทั้งหมด
PID หากเป็นแบบมัลติเธรดไม่ใช่เฉพาะเธรดที่มี
thread_id = PID

-ff ถ้า -o ชื่อไฟล์ มีผลใช้ตัวเลือกแต่ละ
กระบวนการติดตามถูกเขียนถึง ชื่อไฟล์.pid ที่ไหน pid
คือรหัสกระบวนการที่เป็นตัวเลขของแต่ละกระบวนการ นี่คือ
เข้ากันไม่ได้กับ -cเนื่องจากไม่มีการนับต่อกระบวนการ
จะถูกเก็บไว้

-F ตัวเลือกนี้ล้าสมัยแล้วและมีเหมือนเดิม
ฟังก์ชันเช่น -f.

-h พิมพ์สรุปความช่วยเหลือ

-i พิมพ์ตัวชี้คำสั่งในเวลาของ
ระบบโทร.

-k พิมพ์การติดตามสแต็กการดำเนินการของการติดตาม
กระบวนการหลังจากการเรียกแต่ละระบบ (ทดลอง)
ตัวเลือกนี้จะใช้ได้ก็ต่อเมื่อ สเตรซ ถูกสร้างขึ้น
กับลิบูนวินด์

-q ระงับข้อความเกี่ยวกับการแนบ การถอด ฯลฯ
สิ่งนี้เกิดขึ้นโดยอัตโนมัติเมื่อเอาต์พุตถูกเปลี่ยนเส้นทาง
ไปยังไฟล์และรันคำสั่งโดยตรงแทน
แนบ

-qq หากได้รับสองครั้ง ระงับข้อความเกี่ยวกับการออกจากกระบวนการ
สถานะ

-r พิมพ์การประทับเวลาสัมพัทธ์เมื่อเข้าสู่แต่ละระบบ
เรียก. สิ่งนี้บันทึกความแตกต่างของเวลาระหว่าง
การเริ่มต้นของการเรียกระบบต่อเนื่อง

-t นำหน้าแต่ละบรรทัดของการติดตามด้วยช่วงเวลาของวัน

-ต หากให้สองครั้ง เวลาที่พิมพ์จะรวม
ไมโครวินาที

-ttt หากให้สามครั้ง เวลาที่พิมพ์จะรวม
ไมโครวินาทีและส่วนนำหน้าจะถูกพิมพ์
เป็นจำนวนวินาทีนับตั้งแต่ยุค

-T แสดงเวลาที่ใช้ในการโทรของระบบ บันทึกนี้
ความแตกต่างของเวลาระหว่างจุดเริ่มต้นและ
สิ้นสุดการโทรแต่ละระบบ

-w สรุปความแตกต่างของเวลาระหว่างจุดเริ่มต้น
และสิ้นสุดการโทรแต่ละระบบ ค่าเริ่มต้นคือto
สรุปเวลาของระบบ

-v พิมพ์สภาพแวดล้อม, สถิติ,
เทอร์มิโอ เป็นต้น โทร. โครงสร้างเหล่านี้ดีมาก
ทั่วไปในการโทรและดังนั้นพฤติกรรมเริ่มต้นจึงปรากฏขึ้น
ส่วนย่อยที่เหมาะสมของสมาชิกโครงสร้าง ใช้สิ่งนี้
ตัวเลือกเพื่อรับรายละเอียดที่เต็มไปด้วยเลือดทั้งหมด

-V พิมพ์หมายเลขเวอร์ชันของ สเตรซ.

-x พิมพ์สตริงที่ไม่ใช่ ASCII ทั้งหมดเป็นสตริงฐานสิบหก
จัดรูปแบบ

-xx พิมพ์สตริงทั้งหมดในรูปแบบสตริงเลขฐานสิบหก

-y พิมพ์เส้นทางที่เกี่ยวข้องกับ file descriptor
ข้อโต้แย้ง

-ปป พิมพ์ ip: พอร์ตคู่ที่เกี่ยวข้องกับไฟล์ซ็อกเก็ต
คำอธิบาย

-a คอลัมน์ ปรับค่าที่ส่งกลับในคอลัมน์เฉพาะ (default
คอลัมน์ 40)

-b ซิสคอล หากถึง syscall ที่ระบุ ให้แยกจาก traced
กระบวนการ. ปัจจุบันเท่านั้น ผู้บริหาร syscall คือ
ได้รับการสนับสนุน. ตัวเลือกนี้มีประโยชน์หากคุณต้องการ
ติดตามกระบวนการแบบมัลติเธรดดังนั้นจึงต้องการ
-f แต่ไม่ต้องการติดตาม (อาจมาก
ซับซ้อน) เด็ก

-e ด่วน นิพจน์ที่มีคุณสมบัติเหมาะสมซึ่งแก้ไขเหตุการณ์ใด
เพื่อติดตามหรือวิธีการติดตามพวกเขา รูปแบบของ
นิพจน์คือ:

[มีคุณสมบัติ=][!]ค่า 1[,ค่า 2] ...

ที่ไหน มีคุณสมบัติ เป็นหนึ่งใน ติดตาม, ตัวย่อ, ละเอียด,
ดิบ, สัญญาณ, อ่านหรือ เขียน และ ความคุ้มค่า คือ
สัญลักษณ์หรือหมายเลขขึ้นอยู่กับคุณสมบัติ ค่าเริ่มต้น
รอบคัดเลือกคือ ติดตาม. การใช้เครื่องหมายอัศเจรีย์
ปฏิเสธชุดของค่า ตัวอย่างเช่น, -e เปิด
แปลว่า อย่างแท้จริง -e ติดตาม=เปิด ซึ่งในทางกลับกันหมายถึง
ติดตามเท่านั้น เปิด ระบบเรียก. ตรงกันข้าม,
-e ติดตาม=!เปิด หมายถึงการติดตามทุกการเรียกของระบบ
ยกเว้น เปิด. นอกจากนี้ ค่าพิเศษ ทั้งหมด
และ ไม่มี มีความหมายที่ชัดเจน

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

-e ติดตาม=เซ็ต
ติดตามเฉพาะชุดของการเรียกของระบบที่ระบุ NS
-c ตัวเลือกมีประโยชน์ในการพิจารณาว่าระบบใด
การโทรอาจเป็นประโยชน์ในการติดตาม ตัวอย่างเช่น,
ติดตาม=เปิด,ปิด,อ่าน,เขียน แปลว่า ติดตามเท่านั้น
การโทรทั้งสี่ระบบนั้น ระวังในการทำ
การอนุมานเกี่ยวกับขอบเขตผู้ใช้/เคอร์เนลหากเพียง a
กำลังตรวจสอบชุดย่อยของการเรียกระบบ NS
ค่าเริ่มต้นคือ ติดตาม=ทั้งหมด.

-e ติดตาม=ไฟล์
ติดตามการเรียกระบบทั้งหมดที่ใช้ชื่อไฟล์เป็น an
การโต้แย้ง. คุณสามารถคิดได้ว่าเป็นคำย่อ
สำหรับ -e ติดตาม=เปิด,stat,chmod,ยกเลิกการเชื่อมโยง,... ซึ่งเป็น
มีประโยชน์ในการดูว่าไฟล์ใดเป็นกระบวนการ
อ้างอิง นอกจากนี้ การใช้ตัวย่อ
รับรองว่าไม่ลืม
รวมการโทรเช่น ลสแตท ในรายการ เบทยา
คงจะลืมไปว่า

-e ติดตาม=กระบวนการ
ติดตามการเรียกระบบทั้งหมดที่เกี่ยวข้องกับกระบวนการ
การจัดการ. สิ่งนี้มีประโยชน์สำหรับการดูส้อม
รอและดำเนินการตามขั้นตอนของกระบวนการ

-e ติดตาม=เครือข่าย
ติดตามการเรียกของระบบที่เกี่ยวข้องกับเครือข่ายทั้งหมด

-e ติดตาม=สัญญาณ
ติดตามการเรียกของระบบที่เกี่ยวข้องกับสัญญาณทั้งหมด

-e ติดตาม=IPC
ติดตามการเรียกระบบที่เกี่ยวข้องกับ IPC ทั้งหมด

-e ติดตาม=เรียง
ติดตามการเรียกระบบที่เกี่ยวข้องกับตัวอธิบายไฟล์ทั้งหมด

-e ติดตาม=หน่วยความจำ
ติดตามการเรียกระบบที่เกี่ยวข้องกับการแมปหน่วยความจำทั้งหมด

-e ตัวย่อ=เซ็ต
ย่อผลลัพธ์จากการพิมพ์แต่ละสมาชิกของ
โครงสร้างขนาดใหญ่ ค่าเริ่มต้นคือ ตัวย่อ=ทั้งหมดส่วน
-v ตัวเลือกมีผลของ ตัวย่อ=ไม่มี.

-e ละเอียด=เซ็ต
โครงสร้างอ้างอิงสำหรับชุดที่ระบุของ
การโทรของระบบ ค่าเริ่มต้นคือ ละเอียด=ทั้งหมด.

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

-e สัญญาณ=เซ็ต
ติดตามเฉพาะชุดย่อยของสัญญาณที่ระบุ NS
ค่าเริ่มต้นคือ สัญญาณ=ทั้งหมด. ตัวอย่างเช่น สัญญาณ =! ซิจิโอ
(หรือ สัญญาณ=!io) ทำให้สัญญาณ SIGIO ไม่เป็น
ติดตาม

-e อ่าน=เซ็ต ทำการดัมพ์เลขฐานสิบหกแบบเต็มและ ASCII ของ . ทั้งหมด
ข้อมูลที่อ่านจากตัวอธิบายไฟล์ที่ระบุไว้ใน
ชุดที่ระบุ ตัวอย่างเช่น เพื่อดูอินพุตทั้งหมด
กิจกรรมเกี่ยวกับ file descriptors 3 และ 5 ใช้
-e อ่าน=3,5. โปรดทราบว่าสิ่งนี้เป็นอิสระจาก
การติดตามปกติของ อ่าน(2) การเรียกระบบซึ่งก็คือ
ควบคุมโดยตัวเลือก -e ติดตาม=อ่าน.

-e เขียน=เซ็ต
ทำการดัมพ์เลขฐานสิบหกแบบเต็มและ ASCII ของ . ทั้งหมด
ข้อมูลที่เขียนถึง file descriptor ที่ระบุไว้ใน
ชุดที่ระบุ ตัวอย่างเช่น เพื่อดูผลลัพธ์ทั้งหมด
กิจกรรมเกี่ยวกับ file descriptors 3 และ 5 ใช้
-e เขียน=3,5. โปรดทราบว่าสิ่งนี้เป็นอิสระจาก
การติดตามปกติของ เขียน(2) ระบบเรียกซึ่ง
ถูกควบคุมโดยตัวเลือก -e ติดตาม=เขียน.

-I ขัดจังหวะได้
เมื่อ strace สามารถถูกขัดจังหวะด้วยสัญญาณ (เช่น
กด ^C) 1: ไม่มีสัญญาณถูกบล็อก 2: ร้ายแรง
สัญญาณถูกบล็อกขณะถอดรหัส syscall
(ค่าเริ่มต้น); 3: สัญญาณอันตรายถูกบล็อกเสมอ
(ค่าเริ่มต้นถ้า '-o FILE PROG'); 4: สัญญาณร้ายแรงและ
SIGTSTP (^Z) ถูกบล็อกเสมอ (มีประโยชน์ในการสร้าง
strace -o FILE PROG ไม่หยุดบน ^Z)

-o ชื่อไฟล์ เขียนเอาต์พุตการติดตามไปยังไฟล์ ชื่อไฟล์ ค่อนข้าง
กว่าที่จะ stderr ใช้ ชื่อไฟล์.pid if -ff ถูกนำมาใช้.
หากอาร์กิวเมนต์เริ่มต้นด้วย '|' หรือด้วย '!' แล้วก็
อาร์กิวเมนต์ที่เหลือถือเป็นคำสั่งและทั้งหมด
เอาต์พุตถูกส่งไปยังมัน สะดวกสำหรับ
ไพพ์เอาต์พุตการดีบักไปยังโปรแกรมโดยไม่ต้อง
ส่งผลกระทบต่อการเปลี่ยนเส้นทางของโปรแกรมที่ดำเนินการ

-O เหนือศีรษะ ตั้งค่าโอเวอร์เฮดสำหรับการติดตามการโทรของระบบไปที่
เหนือศีรษะ ไมโครวินาที สิ่งนี้มีประโยชน์สำหรับ
แทนที่ฮิวริสติกเริ่มต้นสำหรับการเดาว่า
ใช้เวลามากในการวัดเมื่อกำหนดเวลา
ระบบโทรโดยใช้ -c ตัวเลือก. ความถูกต้องของ
ฮิวริสติกสามารถวัดได้จากการจับเวลาที่กำหนด
โปรแกรมทำงานโดยไม่มีการติดตาม (โดยใช้ เวลา(1)) และ
เปรียบเทียบเวลาเรียกระบบสะสมกับ
ทั้งหมดที่ผลิตโดยใช้ -c.

-p pid แนบไปกับกระบวนการด้วย ID กระบวนการ pid และ
เริ่มการติดตาม การติดตามอาจสิ้นสุดลงเมื่อใดก็ได้
เวลาโดยสัญญาณขัดจังหวะแป้นพิมพ์ (CTRL-C)
สเตรซ จะตอบสนองโดยแยกตัวออกจาก
ติดตามกระบวนการ ปล่อยให้มัน (พวกเขา) เพื่อดำเนินการต่อ
วิ่ง. หลายรายการ -p สามารถใช้ตัวเลือกในการแนบ
สู่หลายกระบวนการ -p "`pidof PROG`" ไวยากรณ์คือ
ได้รับการสนับสนุน.

-P เส้นทาง ติดตามการโทรระบบเท่านั้นที่เข้าถึง เส้นทาง. แพลตฟอร์มที่หลากหลาย -P
สามารถใช้ตัวเลือกเพื่อระบุได้หลายเส้นทาง

-s ขนาด ระบุขนาดสตริงสูงสุดที่จะพิมพ์ (the
ค่าเริ่มต้นคือ 32) โปรดทราบว่าชื่อไฟล์ไม่ใช่
ถือว่าเป็นสตริงและพิมพ์เต็มเสมอ

-S เรียงลำดับ จัดเรียงผลลัพธ์ของฮิสโตแกรมที่พิมพ์โดย -c
ตัวเลือกตามเกณฑ์ที่กำหนด ค่านิยมทางกฎหมายคือ
เวลา, โทร, พร้อมชื่อและ ไม่มีอะไร (ค่าเริ่มต้นคือ เวลา).

-u ชื่อผู้ใช้ รันคำสั่งด้วย ID ผู้ใช้ ID กลุ่ม และ
กลุ่มเสริมของ ชื่อผู้ใช้. ตัวเลือกนี้คือ
มีประโยชน์เฉพาะเมื่อทำงานเป็นรูทและเปิดใช้งาน
การดำเนินการที่ถูกต้องของไบนารี setuid และ/หรือ setgid
เว้นแต่จะใช้ตัวเลือกนี้ setuid และ setgid
โปรแกรมจะดำเนินการโดยไม่มีสิทธิ์ที่มีประสิทธิภาพ

-E คือ=คลื่น รันคำสั่งด้วย คือ=คลื่น ในรายการสิ่งแวดล้อม
ตัวแปร

-E คือ ลบรายการออกจากรถเข็น คือ จากรายการสิ่งแวดล้อมที่สืบทอดมา
ตัวแปรก่อนส่งต่อไปยังคำสั่ง

วินิจฉัย


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

เมื่อใช้ -p, สถานะการออกของ สเตรซ เป็นศูนย์เว้นแต่จะมี
เป็นข้อผิดพลาดที่ไม่คาดคิดในการติดตาม

เซทูอิด การติดตั้ง


If สเตรซ ติดตั้ง setuid ไปที่รูทจากนั้นผู้ใช้ที่เรียกใช้
จะสามารถแนบและติดตามกระบวนการที่เป็นของผู้ใช้คนใดก็ได้
นอกจากนี้ โปรแกรม setuid และ setgid จะถูกดำเนินการและ
ติดตามด้วยสิทธิพิเศษที่มีประสิทธิภาพที่ถูกต้อง เนื่องจากผู้ใช้เท่านั้น
ที่เชื่อถือได้ด้วยสิทธิ์รูทเต็มรูปแบบควรได้รับอนุญาตให้ทำสิ่งเหล่านี้
สิ่งต่าง ๆ มันสมเหตุสมผลที่จะติดตั้ง สเตรซ เป็น setuid เพื่อรูท
เมื่อผู้ใช้ที่สามารถดำเนินการได้จะถูก จำกัด เฉพาะผู้ใช้เหล่านั้น
ที่มีความไว้วางใจนี้ ตัวอย่างเช่น เหมาะสมที่จะติดตั้ง a
รุ่นพิเศษของ สเตรซ ด้วยโหมด 'rwsr-xr--' ผู้ใช้ ราก และ
กลุ่ม ติดตามโดยที่สมาชิกของ ติดตาม กลุ่มเป็นผู้ใช้ที่เชื่อถือได้
หากคุณใช้คุณลักษณะนี้ โปรดอย่าลืมติดตั้งโปรแกรมที่ไม่ใช่
เวอร์ชัน setuid ของ สเตรซ ให้ผู้ใช้ทั่วไปใช้

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


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

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

คำสั่ง Linux

Ad




×
โฆษณา
❤️ช้อป จอง หรือซื้อที่นี่โดยไม่เสียค่าใช้จ่าย ช่วยให้บริการต่างๆ ฟรี