根据系统安装好x64版本,我的系统是win10 x64 ;

windbg下载地址 https://developer.microsoft.com/zh-cn/windows/hardware/download-windbg

符号程序包下载地址中文 https://developer.microsoft.com/zh-cn/windows/hardware/download-symbols

符号程序包不是随便下载的,是根据当前的系统版本下载的: 查询你的系统初安装时选择的版本,

打开cmd,都不用继续查询版本的命令,在第一行 就是版本号.像一下,我的系统是10.0.10240.

 

 打开上边下载页面,选择符号这个版本的符号库

点开下载的时候才能看到,最开始安装的时候选择错了.在此一定要注意了.

接下来配置windbg 环境:

windbg访问符号需要两个文件(SYMSRV.DLL 和 SYMSTORE.EXE)所以添加主path环境变量中它们的路径进去,即:你的windbg安装目录.
操作方法:在桌面我的电脑点右键--属性--高级--环境变量,在系统变量列表框中找到path双击,在变量值最后面加一个分号再把你的安装目录写上.点确定. 这一步是告诉windbg那两个文件放在什么地方.

这里要设置正确了,要不在运行时会提示找不到此文件, 

 

 

上边这个是后来改 的,因为我发现在windbg 时,每次提示找不到地址,还需要在windbg里的符号库地址配置里边手动添加一下地址,才会成功

比如 SRV*C:\symbols* http://msdl.microsoft.com/download/symbols  这一步的意思是说告诉windbg,先从C:\symbols中找寻符号文件,若没有再从://msdl.microsoft.com/download/symbols下载符号文件在本地c:\symbols中.

补充添加关于符号路径的解释:

2.3 符号路径
什么是符号路径呢?就是调试器寻找符号文件的方向,它可以是本地文件夹路径、可访问的UNC路径、或者是符号服务器路径。什么是符号服务器呢?如果调试过程中,需要涉及到成千上万个符号文件,以及同一个符号文件存在不同平台下的不同符号文件版本的时候,那么一一手动设置符号路径肯定是不现实的,于是引入符号服务器的概念。符号服务器有一套命名规则,使得调试软件能够正确找到需要的符号文件。一般来说,符号服务器比较大,都是共用的,放在远程主机上。为了降低网络访问的成本,又引入了符号缓存的概念,即将从服务器上下载到的符号文件,保存在本地缓存中,以后调试器需要符号文件的时候,先从缓存中寻找,找不到的时候再到服务器上下载。

 

符号服务器与符号缓存:

设置符号服务器的基本语法是:

SRV*[符号缓存]*服务器地址
语法由SRV引导,符号缓存和服务器地址的前面各有一个星号引导。符号缓存一般也叫做下游符号库。如某公司有一台专门的符号服务器,地址为\\symsrv\\symbols,则他们公司的所有开发人员都应该在他们的调试器中使用类似下面的命令:

.sympath+ srv*c:\symbols*\\symsrv\symbols
此外,我们总是应该把微软的公用符号库加入到我们的符号路径中:

.sympath+ srv*<缓存地址>*http://msdl.microsoft.com/download/symbols
这是一台微软对外公开的服务器,使用http地址访问,不是所有人都能牢记这个网址,所以最好的办法就是使用.symfix命令,语法如下:

.symfix [+] [符号缓存地址]

 具体解释查看此链接上的文章http://www.yiiyee.cn/Blog/windbg/

现在可以执行File>Attach to a Process...附加进程,开始使用WinDbg调试了。还需要注意的是,你的软件是net 4.0 要选择 4.0相应的sos.dll 因为windbg 是需要这个文件 的.若出现问题要考虑一下是不是这里边没设置好

where sos.dll 

当时我想我的项目是默认是4.5以上的,还检查了这方面的问题.

总之windbg 的环境搭建需要多看看,小有麻烦

我的就是通过以上方法搭建成功

没有找不到路径的错误了.

 

posted on 2017-05-01 17:16  小石头的一天  阅读(12003)  评论(2编辑  收藏  举报