【发布时间】:2014-05-30 17:34:42
【问题描述】:
几天前,我在工作中遇到了这个问题,我想知道有没有办法从场景中提取更多数据而不是去微软。有很多这样的案例,我想探索作为一个 Windows 开发人员,获取大部分信息的最佳/最佳方式是这种情况。我将描述情况:
-
Office 应用程序在使用某些设置(涉及 cmyk 色彩空间)进行打印时会引发一个对话框错误,该对话框的描述错误。“文件 %s 无法打开,因为它已被其他应用程序锁定”。它不提供文件名,事件查看器也不提供。打印中止。
-
在使用
procmon时,当 apiCreatefileMapping被涉及的进程(如办公应用程序、假脱机程序、splwow64.exe 是的,它是 64 位系统和该应用程序是 32 位的)。 -
不涉及 splwow64 时问题不存在,意味着在 64 位操作系统上使用 64 位应用程序。
我想知道在这种情况下哪些工具有助于获取更多信息。这包括在需要时将 MS 符号与 windbg 和调试程序集一起使用。基本上我需要锁定的文件名,显示为 %s 和问题的根源。
【问题讨论】:
-
ProcMon 怎么回事,找不到文件名?
-
有多个文件报告了相同的问题。我想指出实际文件和根本原因。寻找一些可能有助于深入研究这些场景的方法。
-
文件名可能已经消失,因为消息显示的时间比实际文件访问要晚得多。你能创建一个
splwow64.exe的转储,在WinDbg 中打开它并执行.symfix c:\symbols;~*kb以便我们有一个起点吗? -
您是否尝试过捕获第一次机会异常并使用 procdump 创建转储?
标签: assembly reverse-engineering windbg debug-symbols symbol-server