strace print asound ioctl

时间:2013-03-12 10:56:01

标签: debugging alsa strace

我的strace往往会混淆一些ioctl值(我确信SNDRV ioctl不被很好地识别......)

我如何识别正确的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_CONTROLSNDRV_CTL_IOCTL_PVERSION 我真的不知道0x80045530 ...

的宏扩展是什么

谢谢:)

1 个答案:

答案 0 :(得分:2)

正如您在Documentation/ioctl/ioctl-number.txt中看到的,值0x55('U')由多个子系统使用。 strace不知道设备文件属于哪个子系统,并且可能无法识别某些较新的ioctl代码。

最新的strace版本了解SNDRV_CTL_IOCTL_PCM_NEXT_DEVICE