zoukankan      html  css  js  c++  java
  • 未记录的WinDBG扩展命令---itoldyouso

    DBGHELP.DLL中有一些文档化的WinDBG扩展命令,例如!sym and !dh,分别设置符号加载诊断和转储模块PE头。看到itoldyouso是小写的,我不禁怀疑它是否是一个未经文档化的WinDBG扩展命令。启动WinDBG并输入!itoldyouso,产生了以下结果:

    0:000> !itoldyouso
    
    !IToldYouSo <module> [symbol]
    
    !IToldYouSo tests the validity of a module against a symbol file.
    The module can be specified by either its name or base address.
    If a symbol file is not specified, then the loaded symbol is tested.
    Otherwise, if a pdb or dbg symbol file path is specified, it is tested
    against the loaded module.

    真漂亮!如果一个模块有几个.PDB文件,可以使用!itoldyouso (或者!chksym,它执行相同的操作)以查看哪一个是完全匹配的。顺便说一句,如果没有与特定二进制文件匹配的PDB符号,可以使用.symopt(设置符号选项)命令强制WinDBG加载任何符号,并将0x40作为选项传递。将SYMOPT_LOAD_ANYTHING标志设置为符号加载器。请注意,Visual Studio将只加载完全匹配的PDB符号,并且无法更改该行为。

    在上面的屏幕截图中,您可能会看到一些其他未记录的WinDBG扩展命令。如果您看过DBGHELP.DLL文档,您会发现其中一些名称与Microsoft符号格式有关。几乎所有由DBGHELP.DLL导出的未记录命令看起来都是为了帮助WinDBG开发人员调试符号处理或堆栈遍历。
    只有一个命令对我们这些凡人开发者有用!lmi,它在命令行中使用模块名,并在模块和加载的符号文件上生成详细输出。

  • 相关阅读:
    RAC安装时,报The specified nodes are not clusterable 的解决方法
    Unix sar 命令
    Linux 修改 IP地址 和 网关
    Oracle ASM 详解
    RAC安装时需要执行4个脚本及意义
    RAC 的一些概念性和原理性的知识
    Oracle 10g RAC 启动与关闭
    Oracle RAC 修改 IP 地址
    Linux 时间同步配置
    RAC安装时,报The specified nodes are not clusterable 的解决方法
  • 原文地址:https://www.cnblogs.com/yilang/p/12426411.html
Copyright © 2011-2022 走看看