Windows的Systrace


Answers:



38

一些选择:

过程监控器

另外,请参阅有关Windows 7内置工具的本文:

核心操作系统工具


3
我只是使用ProcessMonitor来查明进程挂起的原因-事实是它试图访问无法删除的文件...如果没有ProcMon,它永远不会弄清楚
Jamie Cook

2
我在Linux上使用了strace相当多,并且在Windows上寻找类似的工具来解决NANT出现的问题时遇到了这个问题。我尝试使用Process Monitor,将过滤器设置为仅包含Nant.exe并排除其他所有内容,还仅在遇到问题时将过滤器设置为仅用于寄存器访问,并迅速找出我遇到的问题。我强烈推荐过程监视器。
hshib

@ djhaskin987:就我而言,我有一个加载一些文件的程序; 将它们缓冲到ʀᴀᴍ (因此没有剩余的手柄)并崩溃。由于没有句柄,因此流程监视器无济于事。
user2284570 '16

@hshib:进程监视器的问题是进程不需要句柄来访问文件。因此,在像我的情况下(试图查看哪个配置文件导致崩溃),这没有帮助。
user2284570 '16

15

内存博士(http://drmemory.org)工具附带一个名为drstrace的系统调用跟踪工具,该工具列出了目标应用程序进行的所有系统调用及其参数:http ://drmemory.org/strace_for_windows.html

对于以编程方式实施系统调用策略,可以使用与drstrace相同的基础引擎:DynamoRIO工具平台(http://dynamorio.org)和DrSyscall系统调用监视库(http://drmemory.org/docs/page_drsyscall)。 html)。它们使用动态二进制翻译技术,这确实会产生一些开销(稳态时为20%-30%,但是在运行新代码(例如启动大型桌面应用程序)时会更高),这可能不适合您的目的。


11

API Monitor对此非常有用。


这是一个出色的程序,显示了详细的函数参数/返回值,可让您在满足某些条件时断点,使用多种不同的挂钩方法,因此可以在许多不希望检查的过程中使用。
yuikonnu


3

strace可从Cygwin的cygwin软件包中获得。您可以从Cygwin镜像下载它,例如:

http://mirrors.sonic.net/cygwin/x86_64/release/cygwin/cygwin-2.0.2-1.tar.xz
#      |                      |                              |     |
#      +-----------+----------+                              +--+--+
#                  |                                            |
#               mirror                                       version

strace是少数不依赖Cygwin DLL的Cygwin程序之一,因此您应该能够将其复制strace.exe到所需的位置并使用它。


6
很好,但似乎只能在其他cygwin程序上使用。你不能strace notepad。它启动记事本,但不捕获任何系统调用。
迈克尔·福克斯

2
@MichaelFox:是的,它仅捕获对cygwin1.dll的调用。
user2284570



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.