Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux上的strace未记录对open()的所有调用_Linux_Multithreading_Strace - Fatal编程技术网

Linux上的strace未记录对open()的所有调用

Linux上的strace未记录对open()的所有调用,linux,multithreading,strace,Linux,Multithreading,Strace,我正在使用strace捕获Linux上对open()、close()和read()的调用。目标进程是jetty web服务器。据我所知,strace没有记录对open()的所有调用。也许其他人也是,我没有尝试将文件描述符与open()调用关联起来 例如,启动策略: strace-f-e trace=open、close、read-o/tmp/strace.out-p62881 然后我使用wget获取100个静态文件;所有已成功检索。在一次运行中,仅记录了56个打开事件;在另一次运行100个不同的

我正在使用strace捕获Linux上对open()、close()和read()的调用。目标进程是jetty web服务器。据我所知,strace没有记录对open()的所有调用。也许其他人也是,我没有尝试将文件描述符与open()调用关联起来

例如,启动策略:

strace-f-e trace=open、close、read-o/tmp/strace.out-p62881

然后我使用wget获取100个静态文件;所有已成功检索。在一次运行中,仅记录了56个打开事件;在另一次运行100个不同的文件时,我得到了66个打开的事件

我相信使用“-f”会导致strace连接到线程的所有LWPID(“进程62881连接了25个线程-中断退出”) "); 当我尝试使用多个“-p”选项显式附加到所有对象时,会收到一条“附加”成功消息,但会收到多条“操作不允许消息”,每个子PID一条

在测试之前,我重启了Jetty以清除其缓存

内核版本是2.6.32-504.3.3.el6.x86_64(红帽)。Strace软件包版本为Strace-4.5.19-1.19.el6.x86_64

我错过了什么

谢谢

尝试
-ff
(除了
-f
):


在某些系统上,必须使用openat()而不是open()

尝试:

strace-f-e trace=openat、close、read-o/tmp/strace.out-p62881

一个好建议。不幸的是,它并没有捕获所有的open()事件。
-ff: If the -o filename option is in effect, each processes trace is written to filename.pid  where  pid  is
     the  numeric process id of each process.  This is incompatible with -c, since no per-process counts are
     kept.