有没有办法从我的 windows 上的程序 运行 生成跟踪?
Is there a way to generate trace from a program running on my windows?
我是硬件工程出身。可能这个网站上已经存在我的问题的答案。
作为硬件工程师,我使用了某些相当庞大和复杂的程序。主程序依赖于许多较小的可执行文件来完成它的工作。有没有一种方法可以跟踪它调用的其他程序以及我使用该程序时使用的参数,它们何时开始以及何时结束?
目的是能够编写 Python 脚本或 TCL 脚本来自动执行所有这些步骤。
在 Linux 上,最简单的方法是使用 strace 来跟踪所有系统调用,查找 execve()
系统调用(这是实际启动 运行另一个二进制文件)。由于大多数程序会执行相当多的系统调用,因此会生成很多其他输出,因此您需要进行一些试验才能获得所需的信息。
# Hint: it's much easier to write the output to a file with the -o option
strace -o strace_dump.txt your_program argument_1 argument_2 ...
- How should strace be used?
macOS 上的等效项是 dtruss
,但您应该仔细阅读如何使其工作:
在Windows上,似乎有几个选项:
- Systrace for Windows
我是硬件工程出身。可能这个网站上已经存在我的问题的答案。
作为硬件工程师,我使用了某些相当庞大和复杂的程序。主程序依赖于许多较小的可执行文件来完成它的工作。有没有一种方法可以跟踪它调用的其他程序以及我使用该程序时使用的参数,它们何时开始以及何时结束?
目的是能够编写 Python 脚本或 TCL 脚本来自动执行所有这些步骤。
在 Linux 上,最简单的方法是使用 strace 来跟踪所有系统调用,查找 execve()
系统调用(这是实际启动 运行另一个二进制文件)。由于大多数程序会执行相当多的系统调用,因此会生成很多其他输出,因此您需要进行一些试验才能获得所需的信息。
# Hint: it's much easier to write the output to a file with the -o option
strace -o strace_dump.txt your_program argument_1 argument_2 ...
- How should strace be used?
macOS 上的等效项是 dtruss
,但您应该仔细阅读如何使其工作:
在Windows上,似乎有几个选项:
- Systrace for Windows