我有一个嵌入式系统,带有 ft200xd 芯片,可以进行 USB 转 I2C 连接。我想观察一下数据。
我有一个驱动程序, /dev/ttyFT200XD0
我打算使用 strace,类似于
strace -r read=0
,但这需要找到文件描述符,而我一直不知道该怎么做。如果我尝试
# dmesg | grep -i FT200X
[ 16.916980] ft200xd 0-0022: Probing ft200xd_probe:407:
[ 16.945958] ft200xd 0-0022: Probed, id: 000000
但不幸的是,我看不到任何/proc/tty/driver
能够提供帮助的东西。
我已经加载了驱动程序。
/proc/tty/driver
如何找到用于 strace 的文件描述符,或者我应该使用其他方法来查看数据?
感谢您的指点
文件描述符并非为每个驱动程序分配,通常它们也不是全局唯一的——它们对于每个执行读写操作的进程都是独立的。也就是说,多个进程可以各自为不同的文件或设备打开各自的 fd#3,而同一个文件或设备也可以由不同的进程以不同的 fd# 打开。
如果您知道进程 ID,请使用 附加到该进程
strace -p <pid>
,也可以使用--decode-fds
来显示进程名称。如果您在那里看到 tty 的读写操作,请将范围缩小到您看到的 fd 号。或者,运行lsfd -p <pid>
或lsof -p <pid>
或ls -l /proc/<pid>/fd
来查看该进程持有的文件描述符。