是否可以在某些系统调用中同步两个linux进程而无需修改其代码?
真实世界的示例:v4l2-ctl
是一种可用于设置网络摄像头的某些控件的工具。运行它以设置一些控件后,ffmpeg
用于使用相机捕捉电影。但是,仅设置一些控件并重置其他一些ffmpeg
会导致v4l2-ctl
进行仔细调整。
现在,无需修改和重建其中一个或两个工具即可解决此问题。如果ffmpeg
可以启动,但在打开并配置/dev/video0
后很可能会被暂停(很可能会发生一些ioctls
),然后会调用v4l2-ctl
应用设置。之后,ffmpeg
将恢复并使用正确的设置开始捕获。
是否可以通过简单的方法跟踪一个操作并将其挂起?
答案 0 :(得分:1)
如果您喜欢冒险并且不介意使用调试编译的ffmpeg
,那么您可以想象在gdb
下启动它并在打开{{1}后设置断点(或其他任何地方。无论哪种方式都需要源。)
然后你可以运行二进制文件直到它到达断点,调整/dev/video0
然后告诉v4l2-ctl
继续超过断点。