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

  • 相关阅读:
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    Spring|SpringMVC中的注解
    Spring Boot
    Java模板引擎Freemarker
    Spring Boot整合Spring Data JPA
    Java性能优化,操作系统内核性能调优,JYM优化,Tomcat调优
    将字符串进行md5加密
    equals()方法和hashCode()方法
  • 原文地址:https://www.cnblogs.com/yilang/p/12426411.html
Copyright © 2020-2023  润新知