• 验证符号文件的又一方法(!itoldyouso)


    如果您正在开发软件,很可能遇到了“不匹配的PDB”调试器错误。当您将调试器指向错误的符号路径时,通常会发生这种情况。 但有时你确信你所指向的符号是正确的符号,这让你想知道为什么调试器认为这些符号不匹配。
     "!sym noisy“将告诉您windows调试器如何搜索符号,并在遇到不匹配的pdb时报告它们,但它不会告诉您符号不匹配的原因。针对这一点,我们可以用扩展命令!itoldyouso

    !itoldyouso简介

    这个扩展命令根据模块测试符号文件的有效性。模块可以由其名称或基址指定。如果未指定符号文件,则测试加载的符号。否则,如果指定了pdb或dbg符号文件路径,则针对加载的模块对其进行测试。

    语法

    !IToldYouSo <module> [symbol]

    • module
      模块,可以是名称也可以是地址
    • symbol
      符号文件路径

    用例

    • 匹配的情况
      0:000> !itoldyouso libcef F:..libcef.dll.pdb

      libcef.dll
          Timestamp: 5A9FC023
        SizeOfImage: 2F86000
                pdb: F:Codecef2623chromiumsrcoutReleaselibcef.dll.pdb
            pdb sig: BE989A0F-1981-4A33-8F9C-44FDDE3E2BB2
                age: 1

      libcef.dll.pdb
            pdb sig: BE989A0F-1981-4A33-8F9C-44FDDE3E2BB2
                age: 1

      MATCH: libcef.dll.pdb and libcef.dll
    • 不匹配的情况
      0:000> !itoldyouso libcef F:..libcef.dll1.pdb

      libcef.dll
          Timestamp: 5A9FC023
        SizeOfImage: 2F86000
                pdb: F:Codecef2623chromiumsrcoutReleaselibcef.dll.pdb
            pdb sig: BE989A0F-1981-4A33-8F9C-44FDDE3E2BB2
                age: 1

      F:..libcef.dll1.pdb - Could not find PDB.


      0:000> !itoldyouso libcef F:..Update.pdb

      libcef.dll
          Timestamp: 5A9FC023
        SizeOfImage: 2F86000
                pdb: F:Codecef2623chromiumsrcoutReleaselibcef.dll.pdb
            pdb sig: BE989A0F-1981-4A33-8F9C-44FDDE3E2BB2
                age: 1

      Update.pdb
            pdb sig: 7A98EDE4-B661-401E-86E5-2A9BFF443B9E
                age: 1

      sig MISMATCH: Update.pdb and libcef.dll
  • 相关阅读:
    【转】Struts2 和 Spring MVC对比
    【转】JVM介绍
    linux内核阻塞IO
    linux并发concurrency控制
    内核延时
    linux中断编程
    (转)关于java.lang.UnsupportedClassVersionError解决方法总结
    (转) 使用jdk的xjc命令由schema文件生成相应的实体类
    TWS日志查看
    (转)IBM MQ 创建以及常见问题集锦
  • 原文地址:https://www.cnblogs.com/yilang/p/11887871.html
Copyright © 2020-2023  润新知