Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 斯特拉斯';打开';在可执行文件库中调用_Linux_Unix_Execution_Trace_Strace - Fatal编程技术网

Linux 斯特拉斯';打开';在可执行文件库中调用

Linux 斯特拉斯';打开';在可执行文件库中调用,linux,unix,execution,trace,strace,Linux,Unix,Execution,Trace,Strace,我有一个没有源代码的程序 当我运行它时,日志中出现“无法打开文件…”错误 我调用了strace来跟踪内核上打开的调用,方法如下: strace -e trace=open,close,read,write,connect,accept your-command-here 然而,似乎没有我所期望的任何打开调用(在日志显示“无法打开文件…”之前应该发生) 可执行文件确实将open调用委托给了一个tierce库。 似乎strace只跟踪内核上可执行文件的调用,而不跟踪依赖库的调用 我试图使用ltra

我有一个没有源代码的程序

当我运行它时,日志中出现“无法打开文件…”错误

我调用了strace来跟踪内核上打开的调用,方法如下:

strace -e trace=open,close,read,write,connect,accept your-command-here
然而,似乎没有我所期望的任何打开调用(在日志显示“无法打开文件…”之前应该发生)

可执行文件确实将open调用委托给了一个tierce库。 似乎strace只跟踪内核上可执行文件的调用,而不跟踪依赖库的调用

我试图使用ltrace来跟踪后续库中发生的事情,但它没有显示与strace相同的信息,只显示函数调用(人类无法读取)


是否有一种方法可以同时在可执行文件和库上运行strace

strace
应该显示所有
open
调用。然而:

  • 也许您的应用程序调用子流程来完成工作。对于这种情况,您可以添加一个
    -f
    选项
  • 另一方面,它可能通过打开与另一个进程的套接字(或类似)连接来完成工作。在这种情况下,您将看不到任何痕迹。同样,如果您使用的是接口,那么实际工作可能在您的进程之外完成,可能在内核中,您无法使用此工具进行跟踪

选项'-f'工作正常!谢谢托马斯的帮助