Công cụ theo dõi các cuộc gọi thư viện trong Linux / ARM


8

Tôi đang tìm kiếm một công cụ cho phép theo dõi các cuộc gọi đến các chức năng trong các thư viện dùng chung trong Linux / ARM. Về cơ bản, tôi muốn có thể chỉ định một dòng lệnh và để công cụ này tạo ra một bản ghi các hàm thư viện được gọi và các đối số được truyền. Tôi tưởng tượng một số hình thức móc chức năng có thể được sử dụng cho việc này.

Tôi biết ltrace, trong đó cung cấp chính xác các chức năng tôi yêu cầu. Tuy nhiên, ltracenó không hoạt động đối với tôi như nó:

  • thường segfaults khi truy tìm các chương trình phức tạp hơn.
  • Rất chậm.

Tôi đang tìm kiếm một sự thay thế mạnh mẽ hơn. Tốc độ là tốt đẹp, nhưng không phải là mối quan tâm chính của tôi. Chủ yếu, tôi muốn có một phương tiện truy tìm các cuộc gọi thư viện có thể phân tích bất kỳ chương trình (không lảng tránh) nào.

Sysdig cũng không hoạt động trong ARM và cổng dtrace vẫn chỉ hoạt động ở phiên bản beta trong NetBSD.

Có ai biết về một công cụ như vậy trong một trạng thái có thể sử dụng?

Câu trả lời:


1

Bạn đã xem LTTng chưa? Nó là một khung theo dõi không gian / không gian người dùng hoạt động trên một số kiến ​​trúc, bao gồm cả ARM.

Bạn có thể thiết lập theo dõi mã không gian người dùng bằng LTTng-UST . Nhưng bạn phải biên dịch lại các thư viện chia sẻ mà bạn muốn theo dõi, với các tracepoint LTTng của bạn được thêm vào.

Dưới đây là hướng dẫn từ các tài liệu lttng chính thức về cách thiết lập theo dõi không gian người dùng: Truy tìm ứng dụng người dùng của riêng bạn

Tôi không biết điều này có hữu ích trong trường hợp của bạn không, nhưng cũng có một luồng Stack Overflow khi biên dịch / cài đặt lttng trên các nền tảng nhúng (bao gồm ARM): Làm cách nào để tôi xây dựng và triển khai LTTng cho hệ thống nhúng Linux?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.