【转】VS设置符号表

原帖 : Visual Studio载入Symbolpdb)文件

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 关闭对话框,设置便生效了。

时间: 2024-10-29 22:17:58

【转】VS设置符号表的相关文章

windbg符号表问题

1. 首先设置符号表路径 在系统环境变量添加一个 _NT_SYMBOL_PATH 值为srv*d:\symbols*http://msdl.microsoft.com/download/symbols 这样IDA, windbg, vs 都会自动到该目录加载符号表. 对于这个路径d:\symbols, 可以自定义任何位置, 最好不要用离线符号表,因为你根本就找不到对应的系统版本,而且 对于win10等仍然在更新的系统,符号表过一段时间就会有所变化,到时又要重新下载一个多G的符号表,反而麻烦. 2

使用objdump objcopy查看与修改符号表

使用objdump objcopy查看与修改符号表动态库Linuxgccfunction    我们在 Linux 下运行一个程序,有时会无法启动,报缺少某某库.这时需要查看可执行程序或者动态库中的符号表,动态库的依赖项, Linux 有现成的工具可用:objdump .    有时我们拿到一个静态库,想调用其中的函数,而某些函数作用域非全局,也可以通过修改符号来达到目的. Linux 有现成的工具可用: objcopy . 下面我们来看看具体怎么使用.    objdump 是 gcc 套件中

gdb如何调试没有符号表(未加-g选项的编译)的程序

/*********************************************************************  * Author  : Samson  * Date    : 01/30/2015  * Test platform:  *              3.13.0-24-generic  *              GNU bash, 4.3.11(1)-release  * ************************************

iOS 符号表恢复 & 逆向支付宝

推荐序 本文介绍了恢复符号表的技巧,并且利用该技巧实现了在 Xcode 中对目标程序下符号断点调试,该技巧可以显著地减少逆向分析时间.在文章的最后,作者以支付宝为例,展示出通过在 UIAlertView 的 show 方法处下断点,从而获得支付宝的调用栈的过程. 本文涉及的代码也开源在:https://github.com/tobefuturer/restore-symbol,欢迎 Star 和提 Issue.感谢作者授权发表. 作者介绍:杨君,中山大学计算机系研究生,iOS 开发者,擅长领域

我的第一个编译器之符号表

符号表 符号表是一种供编译器用于保存有关源程序构造的各种信息的数据结构,这些信息在编译器的分析阶段被逐步收集并放入符号表. 如我们输入 {int x;char y;{bool y; x; y; }x; y;} 期望生成: {{x:int; y:bool;} x:int; y:char;} 内层块的x来源于外部. 为每个作用域设置一个符号表 package com.bigbear.main; public class Code { public static String content = "{

Lex与Yacc学习(三)之符号表

符号表 列举单词表的方式虽然简单但是不全面,如果在词法分析程序运行时可以构建一个单词表,那么就可以在添加新的单词时不用修改词法分析程序. 下面示例便利用符号表实现,即在词法分析程序运行时从输入文件中读取声明的单词时允许动态的声明单词.声明以词性的名字开始,后面跟着要声明的单词. 添加符号表可以完全的改变词法分析程序,不必在词法分析程为每个要匹配的单词放置独立的模式,只要有一个匹配任意单词的模式,再查阅符号表就能决定所找到的词性. lex程序ch1-04.l %{ /* *带符号表的词法分析程序

MATLAB——matlab特殊符号表【转载】

链接来源: matlab特殊符号表 http://blog.sina.com.cn/s/blog_4a09187801014xg9.html Character Sequence Symbol Character Sequence Symbol Character Sequence Symbol \alpha α \upsilon υ \sim ~ \beta β \phi Φ \leq ≤ \gamma γ \chi χ \infty ∞ \delta δ \psi ψ \clubsuit ♣

VxWorks 符号表

符号表初始化           符号表用于建立符号名称.类型和值之间的关系.其中,名称为null结尾的任意字符串:类型为标识各种符号的整数:值为一个字符指针.符号表主要用来作为目标模块加载的基础,但在需要名称和值关联的任何时候都看使用. 运行系统中一般存在两个符号表结构sysSymTbl和statSymTbl.sysSymTbl为目标机的系统符号表,通过程序或tShell动态加载的目标模块的符号模块的符号都添加到该符号表中,sysSymTbl和statSymTbl两个标识本身页包含在该系统符号

从零写一个编译器(七):语义分析之符号表的数据结构

项目的完整代码在 C2j-Compiler 前言 有关符号表的文件都在symboltable包里 前面我们通过完成一个LALR(1)有限状态自动机和一个reduce信息来构建了一个语法解析表,正式完成了C语言的语法解析.接下来就是进入语义分析部分,和在第二篇提到的一样,语义分析的主要任务就是生成符号表来记录变量和变量的类型,并且发现不符合语义的语句 描述变量 在C语言里对变量声明定义里,主要有两种描述 说明符(Specifier) 说明符也就是对应C语言的一些描述变量类型或者像static,ex