我有一个正在运行的 Linux 进程卡在 poll() 上。它在缓冲区中有一些数据,但该缓冲区尚未写入磁盘。通常我会杀死会导致它刷新缓冲区并退出的进程。
但是,在这种情况下,它正在写入的文件已从文件系统中删除,因此我需要该进程在缓冲区退出之前写入缓冲区,而 inode 仍然可以通过 /proc//fd/ 访问
是否可以将进程“踢”出 poll() 调用并单步执行,直到它使用 GDB 将缓冲区刷新到磁盘?
(对于好奇,源代码在这里:http: //sourcecodebrowser.com/alsa-utils/1.0.15/arecordmidi_8c_source.html)