fanotify文件实时监控无法使用gdb调试

kiteY
  • 1
新手上路,请多包涵

fanotify FAN_MARK_MOUNT 模式,监控根路径,gdb fanotify监控程序时,ctrl+c ctrl+z 引起系统卡死,有人遇到过么? 是否有解决办法?

评论
阅读 363
1 个回答
just over break
  • 2
新手上路,请多包涵

偶然看见这个问题,刚好我也遇到过。其实问题的原因与FAN_MARK_MOUNT没有任何关系,这只表示你监控了某个mount目录全部文件而已。
真正的原因有两个:
1、你一定是使用了FAN_CLASS_CONTENT而不是FAN_CLASS_NOTIF,使用FAN_CLASS_CONTENT模式你得确保OPEN_PERM和ACCESS_PERM事件有回复,否则应用程序必然会阻塞在open或read函数。
2、gdb如何处理ctrl+c和ctrl+z?在gdb调试时信号会先被gdb接收然后才发送给进程,有的信号还会被拦截不让进程收到,ctrl+c就是其一。不论是ctrl+c和ctrl+z都会使gdb停止进程的运行。
好了,真正的原因已经浮出水面,你在gdb调试时让进程停止运行了,那么发生PERM事件时自然无法处理事件了,那么系统卡死必然会出现,除非进程恢复运行或退出。

撰写回答

登录后参与交流、获取后续更新提醒

宣传栏