Alat untuk melacak panggilan perpustakaan di Linux / ARM

8

Saya mencari alat yang memungkinkan untuk melacak panggilan ke fungsi di pustaka bersama di Linux / ARM. Pada dasarnya, saya ingin dapat menentukan baris perintah dan membiarkan alat ini menghasilkan catatan yang disebut fungsi perpustakaan dan argumen yang diteruskan. Saya membayangkan beberapa bentuk fungsi hooking dapat digunakan untuk ini.

Saya sadar ltrace, yang menyediakan persis fungsi yang saya butuhkan. Namun, ltracetidak berfungsi untuk saya karena:

  • sering kesalahan ketika melacak program yang lebih kompleks.
  • sangat lambat.

Saya mencari alternatif yang lebih kuat. Kecepatannya bagus, tapi bukan perhatian utama saya. Terutama, saya ingin memiliki alat untuk melacak panggilan perpustakaan yang dapat menganalisis program (non-mengelak) apa pun.

Sysdig juga tidak bekerja di ARM, dan port dtrace masih berfungsi dalam versi beta hanya di NetBSD.

Adakah yang tahu alat seperti itu dalam keadaan dapat digunakan?

j0ker
sumber

Jawaban:

1

Apakah Anda sudah melihat LTTng ? Ini adalah kerangka penelusuran kernelspace / userspace yang bekerja pada beberapa arsitektur, termasuk ARM.

Anda dapat mengatur pelacakan kode userspace dengan LTTng-UST . Tetapi Anda harus mengkompilasi ulang pustaka bersama yang ingin Anda lacak, dengan tracepoint LTTng Anda ditambahkan.

Berikut adalah panduan dari dokumen resmi tentang cara menyiapkan penelusuran pengguna: Menelusuri aplikasi pengguna Anda sendiri

Saya tidak tahu apakah ini akan membantu dalam kasus Anda, tetapi ada juga thread Stack Overflow pada kompilasi / instalasi lttng pada platform embedded (termasuk ARM): Bagaimana cara saya membangun dan menggunakan LTTng ke sistem Linux embedded?

J. Taylor
sumber