有没有比 procmon 更可靠的 Win32 系统调用跟踪方法?
Is there a more reliable Win32 syscall tracing method than procmon?
我正在 Windows 10 中构建一个 Haskell 命令行应用程序,并试图通过跟踪系统调试围绕 Windows 260 个字符的文件路径限制的问题调用并查看哪些失败了。
我为此使用了 procmon (https://docs.microsoft.com/en-us/sysinternals/downloads/procmon),这看起来相当不错,但是尽管它显示了许多相关的日志条目,但我惊讶地发现它没有显示特定的条目实际超过 260 个字符并使我的应用程序崩溃的 CreateFileW 调用。
我简单地尝试了 Win32 API Monitor (https://www.apimonitor.com),但无法弄清它的正反面;它似乎更适合附加到已经 运行 的 GUI 应用程序,而不是需要在特定目录等中启动的命令行应用程序
是否有更好的替代方法或更好的方法?
@RemyLebeau 的评论正是我需要的:
"I was surprised to find that it doesn't display an entry for the
particular CreateFileW call that actually exceeds 260 chars and
crashes my application"
因为没有什么可以记录的。当输入数据是第一个时,调用可能会在更高级别 API 层被拒绝
在它到达文件系统层之前很久就已经过验证。 Procmon日志
较低级别 activity,而不是较高级别 API。 API Monitor 等工具
是你要找的。如果您遇到问题,请咨询
关于那个的新问题。
我对这个问题的最终解决方案是从 base-4.11
升级到 base-4.12
,它可以更好地处理 windows 路径 > 260 个字符。
我认为我什至不再需要注册表开关了。
我正在 Windows 10 中构建一个 Haskell 命令行应用程序,并试图通过跟踪系统调试围绕 Windows 260 个字符的文件路径限制的问题调用并查看哪些失败了。
我为此使用了 procmon (https://docs.microsoft.com/en-us/sysinternals/downloads/procmon),这看起来相当不错,但是尽管它显示了许多相关的日志条目,但我惊讶地发现它没有显示特定的条目实际超过 260 个字符并使我的应用程序崩溃的 CreateFileW 调用。
我简单地尝试了 Win32 API Monitor (https://www.apimonitor.com),但无法弄清它的正反面;它似乎更适合附加到已经 运行 的 GUI 应用程序,而不是需要在特定目录等中启动的命令行应用程序
是否有更好的替代方法或更好的方法?
@RemyLebeau 的评论正是我需要的:
"I was surprised to find that it doesn't display an entry for the particular CreateFileW call that actually exceeds 260 chars and crashes my application"
因为没有什么可以记录的。当输入数据是第一个时,调用可能会在更高级别 API 层被拒绝 在它到达文件系统层之前很久就已经过验证。 Procmon日志 较低级别 activity,而不是较高级别 API。 API Monitor 等工具 是你要找的。如果您遇到问题,请咨询 关于那个的新问题。
我对这个问题的最终解决方案是从 base-4.11
升级到 base-4.12
,它可以更好地处理 windows 路径 > 260 个字符。
我认为我什至不再需要注册表开关了。