1

ioctl私のstraceはいくつかの値を混乱させる傾向があります( SNDRVioctlsがうまく認識されていないことは確かです...)

どうすれば正しいioctl値を認識できますか?

ちょっとした例:

$ strace aplay -l

...
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
ioctl(4, UI_DEV_CREATE, 0xbfaa6e74)     = 0
close(4)                                = 0
...

それUI_DEV_CREATESNDRV_CTL_IOCTL_CARD_INFO

(もう一つの例)

ioctl(4, USBDEVFS_CONTROL or USBDEVFS_CONTROL32, 0xbfaa6f94) = 0
ioctl(4, UI_DEV_CREATE, 0xbfaa71f0)     = 0
ioctl(4, 0x80045530, 0xbfaa73ac)  

USBDEVFS_CONTROLはでSNDRV_CTL_IOCTL_PVERSION あり、マクロ展開が何であるかは本当にわかりません0x80045530...

ありがとう :)

4

1 に答える 1

2

でわかるようにDocumentation/ioctl/ioctl-number.txt、値0x55('U')はいくつかのサブシステムで使用されています。 straceデバイスファイルがいくつかのサブシステムのどれに属しているかを認識しておらず、いくつかの新しいioctlコードを認識しない可能性があります。

最新straceバージョンはについて知っていSNDRV_CTL_IOCTL_PCM_NEXT_DEVICEます。

于 2013-03-12T13:52:51.233 に答える