2009-09-03 13 views
5

Próbuję odtworzyć obiekt współdzielony trybu użytkownika, który współdziała ze sterownikiem jądra za pośrednictwem ioctl syscalls. Mam plik nagłówkowy z definicjami interfejsu ioctl sterownika jądra (tj. #defines dla numerów poleceń ioctl i definicjami struct dla różnych danych wysyłanych do ioctl).Dodawanie niestandardowych typów struktur do strace

Widzę, że strace ma możliwość odwoływania się do wskaźników użytkownika, które są przekazywane do wywołań systemowych, ale oczywiście nie może odwoływać się do moich niestandardowych struktur przekazywanych do ioctl. Czy istnieje prosty sposób dodawania definicji do strace, aby uzyskać znaczące dane przekazywane do ioctl, a nie tylko adres wskaźnika?

mam źródło strace i pomyślnie skompilowany/zainstalowany, ale wszystkie moje próby włączenia własną głową nie miały żadnego wpływu.

Odpowiedz

2

Build strace nie automatycznie introspekcji struktur i generowania parser dla nich - musisz napisać kod do obsługi swoich struktur.

+0

Rozumiem. Po prostu uwzględnienie definicji mojego struct nie wystarczy. Zaznaczam to jako zaakceptowaną odpowiedź, ponieważ odpowiada na pytanie. Chociaż odpowiedź Dave'a to kolejny dobry sposób na osiągnięcie mojego celu. –

2

Najprostszym sposobem osiągnięcia tego może być napisanie interposer biblioteki dla ioctl(). Jest ładny przewodnik, aby to zrobić na Linuksie here.

Można sprawdzić niestandardowe numery poleceń, których używa aplikacja; i zrzuć dla nich struktury.

Powiązane problemy