当前位置: 代码网 > it编程>编程语言>C/C++ > Visual Studio调试,提示未加载XXX.pdb,离线环境如何解决?

Visual Studio调试,提示未加载XXX.pdb,离线环境如何解决?

2024年08月03日 C/C++ 我要评论
我对这个问题的理解是,VS无法加载一些系统符号,所以调试的时候没法显示具体的调试信息(例如出现的异常在系统代码中的具体位置之类的)。

我对这个问题的理解是,vs无法加载一些系统符号,所以调试的时候没法显示具体的调试信息(例如出现的异常在系统代码中的具体位置之类的)。
找了一圈,找到一个可能的解决办法:

1.安装debugging tools for windows

下载链接:windows 调试工具下载
为什么要下载呢?因为我们需要用到symchk工具,具体理由参考如下链接:
windows symbol packages for debugging中的symbol package deprecation解释:

翻译一下:关于为无法连接互联网的机器获取符号的相关信息,详见using a manifest file with symchk.(这在文中是个连接),进去以后是关于如何用symchk获取程序所需的符号信息的方法。

所以我们就要先安装标题所提到的工具,里面包含了symchk。我是参考了其中的作为独立工具集方法安装。

2.运行你的app

这一步比较容易忽略,需要先运行你的app,然后才能用symchk获取所需的符号信息。当然最好先添加一下系统环境变量,便于在cmd中使用

如果是默认安装的话,symchk所在路径应该是c:\program files (x86)\windows kits\10\debuggers\x64

3.执行cmd命令获取符号信息

参考using a manifest file with symchk中的方法,在命令行中执行以下两条命令读取、下载所需符号信息:

//读取
c:\>symchk /om c:\manifest\man.txt /ie yourapp.exe
//下载
c:\>symchk /im c:\folderonothercomputer\man.txt /s srv*c:\mysymbols*\\aserver\symbols

其中需要修改的包括:
c:\manifest\man.txt:指向你想保存读取信息的文件位置;
yourapp.exe:你的app exe文件(这里是相对路径,最好是在exe所在目录下执行cmd);
c:\folderonothercomputer\man.txt:这里指向刚才保存的man.txt,由于文章是假设你在另一台互联网机器上下载符号信息,所以路径名换了个;
c:\mysymbols:这是保存符号文件的目录,前后的内容都不用动

当然我自己试的是下载全部失败,所以就没再深究了,感兴趣的同学可以继续探索一下。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com