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,它在命令行中使用模块名,并在模块和加载的符号文件上生成详细输出。

  • 相关阅读:
    nodejs难点
    react 组件化
    vue router & vuex
    vue源码思考
    cookie & session
    servlet
    Hashmap
    Zookeeper+Kafka+flink+socket
    flink consumer can realize kafka avro with overwriting kafkaDeseriler, and executor multithread and genretic extends
    flink kafka consumer with avro schema. handling null
  • 原文地址:https://www.cnblogs.com/yilang/p/12426411.html
Copyright © 2011-2022 走看看