[英]Suspend program execution if syscall with specific parameters called (GDB / strace)
当使用特定参数调用某些syscall时,是否有准备就绪的方法可以中止挂起已跟踪进程的执行? 具体来说,我想随时暂停程序执行
stat("/${SOME_PATH}")
要么
readlink("/${SOME_PATH}")
叫做。 然后,我打算附加一个调试器,以便可以识别链接到该过程的数百个共享库中的哪个正在尝试访问该特定路径。
strace
向我展示了syscalls,其余的由gdb
完成。 问题是,如何将它们融合在一起。 这当然可以通过自定义胶水脚本解决,但我宁愿使用干净的解决方案。
当前的问题是第三方软件套件,它仅以二进制形式提供,并且该分发包完全违反了LSB / FHS和良好的方式,并在文件系统上放置了共享对象,其中一些是从无法配置的路径加载的。 我想确定工具套件的哪个模块尝试执行此操作,并修补二进制文件或向供应商提出问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.