【发布时间】:2011-08-17 07:31:34
【问题描述】:
背景故事:在strace 下运行程序时,我注意到'/dev/urandom' 被open'ed。我想知道这个调用来自哪里(它不是程序本身的一部分,它是系统的一部分)。
因此,使用 gdb,我试图在发出 open 调用时中断(使用 catch syscall open)程序执行,因此我可以看到回溯。问题是open 被称为alot,大概有几百次,所以我无法缩小打开/dev/urandom 的具体调用范围。我应该如何缩小特定呼叫的范围?有没有办法按参数过滤,如果是这样,我该如何为系统调用进行过滤?
任何建议都会有所帮助——也许我做错了。
【问题讨论】:
-
你可以简单地做:break open if strcmp($rdi,"/dev/urandom") == 0
标签: linux gdb system-calls strace