我有一堆流量和数据处理应用程序,我偶尔需要监视,这意味着我需要知道他们读取的文件.这主要是为了帮助打包测试用例,但在调试时也很有用.
有没有办法以产生这样一个列表的方式运行可执行文件?
我对此有两点想法:
- 我可以调用一个命令,该命令会调用我的应用程序.GDB的一些东西.我调用GDB,给它一个可执行文件的路径和一些参数,GDB为我调用它.也许类似于告诉我如何使用系统资源.
- 也许更有趣(但不必要的侧路径)解决方案.
- 创建名为libc.so的库,它实现了fopen(和其他一些)
- 将LD_LIBRARY_PATH更改为指向新库
- 制作真正的libc.so的副本,并在编辑器中重命名fopen(也许是nepof)
- 我的库加载副本并根据需要调用重命名的函数以提供fopen功能.
- 调用应用程序然后调用我的代理fopen.
备选方案#1肯定是更好的选择,但是对于如何更容易地做#2的评论也是受欢迎的.