0

我正在 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 应用程序而不是需要在特定目录中启动的命令行应用程序等。

有没有比这些更好的选择,或者更好的方法?

4

1 回答 1

0

@RemyLebeau 的评论是我需要的:

“我惊讶地发现它没有显示实际超过 260 个字符的特定 CreateFileW 调用的条目并导致我的应用程序崩溃”

因为它没有什么可以记录的。调用很可能在更高级别的 API 层被拒绝,当输入数据第一次被验证时,早在它到达文件系统层之前。Procmon 记录较低级别的活动,而不是较高级别的 API。您正在寻找像 API Monitor 这样的工具。如果您遇到问题,请提出一个新问题。

我对激发这个问题的最终解决方案是升级base-4.11base-4.12更好地处理 Windows 路径 > 260 个字符。

我认为我什至不再需要注册表开关了。

于 2019-09-29T21:55:59.900 回答