0

我正在尝试在 Windows XP 上调试 C++ 应用程序,当我启动调试模式时,在所有初始化完成后,主窗口不会显示。但是,它适用于 W7。

因此,我检查了该应用程序可用的 msi 安装程序,安装该应用程序后,问题似乎消失了。我卸载了该应用程序,它仍然有效。

我需要知道安装程序修改了哪些注册表项和 DLL,以便识别问题。有没有办法做到这一点?

4

2 回答 2

3

是的。Microsoft 的Process Monitor是免费的,它跟踪程序生成的每个文件 I/O 和注册表读/写,包括安装程序。但是,可能会有很多这样的变化。

因为procmon通过在进程运行时监控进程来工作,所以您必须再次运行安装程序。

于 2013-07-16T14:51:13.417 回答
1

问题解决了。问题是应用程序会尝试获取空对象上的锁,然后失败,然后释放锁。因此,当进行下一次获取时,应用程序会崩溃。奇怪的是,相同的代码在 Windows 7 上也能正常工作,但我猜测 Win API 的锁定部分有一些改进。

Process Monitor会很有用,但安装程序有太多线程和注册表更改无法跟踪。快照会像Process Monitor诊断日志记录一样复杂。

谢谢你们的帮助,伙计们:)

于 2013-07-25T13:08:19.537 回答