Strace ไม่ทำงานในเป้าหมาย MIPS

ฉันกำลังใช้งานบอร์ดแบบฝังซึ่งมีโปรเซสเซอร์ MIPS ฉันกำลังประสบปัญหาขณะดำเนินการ strace กับเป้าหมาย

สร้างสภาพแวดล้อม:

glibc version: 2.3.2
gcc version: 3.4.4
strace version: 4.4.94 
linux version : 2.6.34.1

ฉันได้รวบรวม strace ข้ามสำหรับเป้าหมาย MIPS และพยายามเรียกใช้ strace ในเป้าหมาย แต่ strace ไม่ทำงาน ฉันไม่เห็นการติดตามการโทรของระบบ

ผลลัพธ์ของการดำเนินการ strace บนเป้าหมาย:

#strace /bin/ls
(To be restarted).
#

ฉันรู้สึกว่าฉันขาดการกำหนดค่าหรือแฟล็กบางอย่างที่ต้องกำหนดค่าเพื่อให้ strace ทำงานได้

CFLAGS = "-D_REENTRANT -g -Os -fomit-frame-pointer -pipe -march=mips32r2 -mtune=mips32r2 -Wall -g -DHAVE_SERVICE_CTRL"

โปรดช่วยฉันในเรื่องนี้


person vignesh lal    schedule 23.05.2013    source แหล่งที่มา
comment
ขอบคุณสำหรับการป้อนข้อมูลของคุณ ฉันได้เปลี่ยนค่าสถานะเครื่องมือเพิ่มประสิทธิภาพจาก Os เป็น -O ใน CFLAGS (CFLAGS=-D_REENTRANT -g -fomit-frame-pointer -pipe -march=mips32r2 -O -Wall -DHAVE_SERVICE_CTRL) ตอนนี้สามารถรับการติดตามการเรียกของระบบ แต่ยังคงผลลัพธ์เอาต์พุต ให้ค่าส่งคืนจำนวนมาก โหมด = เปิด /etc/ld.so.preload, O_RDONLYDIRd/4464388-717129012:01:268633712   -  person vignesh lal    schedule 24.05.2013


คำตอบ (1)


strace ใช้การเรียกของระบบ ptrace() เพื่อติดตามไฟล์ปฏิบัติการเป้าหมาย บางทีการแจกจ่าย Linux ของคุณไม่รองรับ ptrace() ฉันจะสร้างโปรแกรมทดสอบง่ายๆ ที่เรียก ptrace() เพื่อดูว่าใช้งานได้หรือไม่

การดีบักจะมีประโยชน์มากเช่นกัน คุณสามารถตั้งค่าการดีบักระยะไกลด้วย gdb และดีบักบอร์ดเป้าหมายจากพีซี

person stdcall    schedule 23.05.2013
comment
หลังจากลบแฟล็กออปติไมเซอร์ใน CFLAGS=-D_REENTRANT -g -fomit-frame-pointer -pipe -march=mips32r2 -Wall แล้ว strace จะเริ่มทำงานตามที่ได้รับการยกเว้น - person vignesh lal; 29.05.2013