Strace tidak bekerja di target MIPS

Saya sedang mengerjakan papan tertanam yang memiliki prosesor MIPS. Saya menghadapi masalah saat menjalankan strace sesuai target.

Bangun lingkungan:

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

Saya telah mengkompilasi strace silang untuk target MIPS dan mencoba menjalankan strace di target. Tapi strace tidak berfungsi. Saya tidak melihat jejak panggilan sistem apa pun.

Output eksekusi strace sesuai target:

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

Saya merasa saya kehilangan beberapa konfigurasi atau tanda yang harus dikonfigurasi agar strace berfungsi.

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

Tolong bantu saya dalam hal ini.


person vignesh lal    schedule 23.05.2013    source sumber
comment
Terima kasih atas masukannya. Saya telah mengubah flag Pengoptimal dari Os menjadi -O di CFLAGS (CFLAGS=-D_REENTRANT -g -fomit-frame-pointer -pipe -march=mips32r2 -O -Wall -DHAVE_SERVICE_CTRL), sekarang bisa mendapatkan jejak panggilan sistem tetapi masih menampilkan hasil memberikan beberapa nilai pengembalian yang besar. mode=terbuka, /etc/ld.so.preload, O_RDONLYDIRd/4464388-717129012:01:268633712   -  person vignesh lal    schedule 24.05.2013


Jawaban (1)


strace menggunakan ptrace() panggilan sistem untuk melacak target yang dapat dieksekusi. Mungkin distribusi Linux Anda tidak mendukung ptrace(). Saya akan membuat program pengujian sederhana yang memanggil ptrace() untuk melihat apakah itu berfungsi atau tidak.

Debugging juga akan sangat membantu. Anda dapat mengatur debugging jarak jauh dengan gdb dan men-debug papan target dari PC.

person stdcall    schedule 23.05.2013
comment
Setelah menghapus tanda pengoptimal di CFLAGS=-D_REENTRANT -g -fomit-frame-pointer -pipe -march=mips32r2 -Wall , strace mulai berfungsi sebagai pengecualian. - person vignesh lal; 29.05.2013