让Visual Studio载入Symbol(pdb)文件

让Visual Studio载入Symbol(pdb)文件

Visual Studio载入Symbolpdb)文件

在VC编译工程的编译连接阶段,会产生Symbol文件,也就是常说的 pdb 文件。pdb 的全称为 program database,在 MSDN 中的解释为,pdb 文件是一个在编译和链接阶段产生的,包含了类型和调试符号信息的二进制文件。pdb 文件中包含了各个函数的符号表,也是进行 WinDbg 调试必不可少的文件。

既然 pdb 文件是给调试器使用的,那么 Visual Studio 调试器也就可以使用之。通过如下设置,Visual Studio 便可以在调试过程中加载 pdb 文件了。

Tools --> Options --> Debugging

在“Symbol file (.pdb) locations:”下面的控件中输入微软默认 pdb 文件的下载路径“http://msdl.microsoft.com/download/symbols”。

在“Cache symbols from symbol servers to this directory:”下的编辑框中输入本地保存路径,如:D:/WinSymbols/MsDownSymbols。

下面两个 CheckBox 的意思分别为:

“Search the above locations only when symbols are loaded manually”。

调试器仅仅载入手动载入的 Symbol。勾上此选项,调试速度会更快,但 pdb 载入相对较少,调试信息较少,建议不勾选。

“Load symbols using the updated settings when the dialog is closed”

对话框关闭后,立刻加载符号表。勾上此选项可以立刻看到效果,调试速度当然会稍微慢一点,建议勾选。

点击 OK 关闭对话框,设置便生效了。

如图所示:

设置过了,当然要看看效果啦。

我们先看看正常情况下 CallStack 的状态,建立一个普通 Win32 程序,在InitInstance入口下个断点,F5开启调试,在 CallStack 窗口如下显示:

我们可以看到,在最下面两行中,信息是灰掉的,kernel32.dll中那个函数调用了我们的wWinMainCRTStartup也看不到,进程最开始由哪个函数创建也看不到。

现在看看设置了 Symbol 时 CallStack 的状态,建立一个普通 Win32 程序,在InitInstance入口下个断点,F5开启调试,在 CallStack 窗口如下显示:

我们可以看到,程序是由kernel32.dll中的导出函数“_BaseProcessStart”开始的,_BaseProcessStart调用了我们的wWinMainCRTStartup函数,然后程序就运行起来了。

当然设置 Symbol 的用处远远不止这些,其余的就等您慢慢发现。

注:设置 Symbol 之后,调试速度会慢下来,如果无需知道系统函数是如何调用的,建议调试时不设置 Symbol。

时间: 2024-08-10 17:19:44

让Visual Studio载入Symbol(pdb)文件的相关文章

cmake管理visual studio无法显示头文件解决方法

原因 我们的跨平台项目使用cmake来管理的,但是windows下的小伙伴发现在visual studio上头文件没有加载进来,于是手工加载,事情过去了.然后,有一天我修改了CMakeLists.txt文件,visual studio居然自动去重新生成了项目,然后头文件就没有了.哭吧---- 解决方法 source_group 可以将文件分目录来显示在IDE中.所以,修改了一下base.cmake文件让所有的项目都能检索出头文件并显示在 include 文件夹中. file(GLOB_RECUR

DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版及制作Visual Studio C#项目模板文件详解

关于 DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版---------------------------------------------------------基于 官方原版的安装包 + http://www.cnblogs.com/tracky 提供的补丁DLL制作而成.安装之后,直接就可以用了.省心省事.不必再单独的打一次补丁包了.本安装包和补丁包一样都删除了官方自带

Visual Studio 2010生成dll文件并调用(C#)

1.创建新C#控制台应用程序,项目命名createBll,打开Program.cs重命名为TestA(可以不重命名)并修改代码,如图: 写好后,可以写其它的类.cs文件 2.完成后,点击菜单栏的"项目",下拉单选择"createDll属性",打开如图窗口 在输出类型选择"类库",然后关掉该窗口,生成解决方案,即生成了creatBll.dll文件,在项目下createBll\createBll\bin\Debug\createBll.dll目录下.

关于Visual Studio中的TraceDebugging文件夹

最近一段时间发现C盘莫名其妙的变小了,各种清理各种卸载还是没用,电脑慢的是在无法使用 .最后只能一个文件夹一个文件夹的找,最后针对“C:\Documents and Settings\All Users\Application Data\Microsoft Visual Studio\10.0\TraceDebugging”文件夹,发现这个文件夹有10GB大小.,然后查找了一些相关的资料,发现该文件夹是VS2010(VS2010添加的一个新功能)添加的文件夹,记录了线程,异常数据,无测试数据,系

visual studio code编辑python文件

visual studio code 安装.通过360软件管家,查找visual studio code 下载安装即可 设置visual studio code为中文 打开进入软件,Ctrl + Shift + P,切入到命令行模式.输入“Configure Language” 然后点击下拉框出来的 Configure Display Language 然后会出现如下界面,把"locale":"en"改成"locale":"zh-CN&

Visual Studio 2013编辑HTML文件无设计视图的解决方案

在Visual Studio 2013中编辑HTML文件,会发现没有设计视图. 解决方法:点击Visual Studio 2013的”工具“菜单,再点击”选项“—>文本编辑器—>文件扩展名,右侧输入html,再下拉列表选HTML(Web窗体)编辑器,点添加,确定. 关闭Visual Studio中正在编辑的html文件,再打开html文件,就可以使用设计视图了.

Visual Studio各版本工程文件之间的转换

由于VS版本比较多,低版本无法直接打开高版本的工程文件,通过对工程文件进行一些修改可以解决这些问题. 通过修改Solution文件和Project文件,可以使低版本转换为高版本. 例如将VS2015工程转换为VS2010工程. 1.修改解决方案文件 使用记事本打开.lsn文件: 将Format Version 12.00改为11.00: 将# Visual Studio 14改为2010: 将VisualStudioVersion = 14.0.25123.0改为10. Format Versi

如何把visual studio 2010的工程文件迁入TFS2010中管理

如何在VS2010里面创建项目并添加到TFS2010里面. 新建一个项目,并把它添加到TFS,我们会收到下面的错误: 这是因为我们没有为项目创建Team project,而把它直接添加到了Team project collections,这是不允许的. 具体步骤应该是: 1.在tfs 管理控制台中,新建团队项目集合yfs,如果不创建,默认放到DefaultCollection中. 2.在visual studio中,连接TFS,在团队项目集合下,选择tfs管理模块Agile,新建“团队项目”.

VS2012/2013/2015/Visual Studio 2017 关闭单击文件进行预览的功能

Visual Studio在2010版本后推出了点击项目管理器预览文件的功能,但是对于配置不咋地的旧电脑总是觉得有点卡,下面是解决方案. 英文版方法:Tools->Options->Environment->Tabs and Windows->Preview Tab->勾掉Single-click opens files in the preview tab checkbox.中文版方法:工具->选项->环境->选项卡和窗口->预览选项卡->勾掉