定制调试诊断工具和实用程序(7)

http://tech.ddvip.com   2006年07月20日    社区交流

本文详细介绍定制调试诊断工具和实用程序(7)

  本文假设你熟悉 Win32,DLL

  

  • 定制调试诊断工具和实用程序——摆脱DLL"地狱"(DLL Hell)的困扰(一)
  • 定制调试诊断工具和实用程序——摆脱DLL"地狱"(DLL Hell)的困扰(二)
  • 定制调试诊断工具和实用程序——摆脱DLL"地狱"(DLL Hell)的困扰(三)
  • 定制调试诊断工具和实用程序——摆脱DLL"地狱"(DLL Hell)的困扰(四)
  • 定制调试诊断工具和实用程序——摆脱DLL"地狱"(DLL Hell)的困扰(五)
  • 定制调试诊断工具和实用程序——摆脱DLL"地狱"(DLL Hell)的困扰(六)

  Windows Loader 知道一切

  除了 Win32 调试 API 之外,Windows 还提供另外一种很好的关于 DLL 加载地址冲突的信息源。那就是在注册表中设置的一些全局标志(或 GFlags):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

  从而改变 Windows 处理应用程序的方式。GFlags.exe (see Figure 8) 是一个微软调试工具之一,用它可以轻松更改上述的注册表项值。

  Figure 8 全局标志

  在 1999 九月的 “Under the Hood”专栏中, Matt Pietrek 解释了如何将 FLG_SHOW_LDR_SNAPS 与上述 GFlags 结合使用让 Windows Loader 产生一些有用的跟踪信息。如果你想捕获这些跟踪信息,你有两个选择:第一个是调试应用程序,然后象所做的 CApplicationDebugger 那样解释 OUTPUT_DEBUG_STRING_EVENT。另外一个方法比较容易:使用全局捕获工具。如果你想要生成自己的跟踪信息,使用 Sysinternals 或《Inside Windows 2000, Third Edition》CD 中的 DbgView,这个工具还可以显示内核跟踪信息。

责编:豆豆技术应用

正在加载评论...