opencv+vs调试符号
来源:互联网 发布:中国电信宽带网络 编辑:程序博客网 时间:2024/06/16 09:33
转自 http://www.cnblogs.com/zplutor/archive/2011/03/20/1989783.html
什么是调试符号
我们知道,在exe、dll等可执行文件中保存的数据大部分都是二进制指令,CPU直接读取这些指令并执行。那么调试器是如何知道每条指令对应哪个源文件的哪一行代码呢?它又是如何知道每个变量和函数的名称,并显示变量的值呢?很显然,可执行文件的二进制数据中不可能包含这么多信息,这一切都是由调试符号来支持的。
所谓符号,简单来说就是源代码中每个对象的名称。例如变量、函数、类型等,它们都有一个名称,以及其它的相关信息:变量有类型、地址等信息;函数有返回值类型、参数类型、地址等信息;类型有长度等信息。编译器在编译每个源文件的时候都会收集该源文件中的符号的信息,在生成目标文件的时候将这些信息保存到符号表中。链接器使用符号表中的信息将各个目标文件链接成可执行文件,同时将多个符号表整合成一个文件,这个文件就是用于调试的符号文件,它既可以嵌入可执行文件中,也可以独立存在。
符号文件中包含的信息可多可少,这样可以避免泄露程序的信息。调试版程序的符号文件包含了所有的调试信息,而发行版程序的符号文件只包含非常少的调试信息,甚至没有符号文件。
符号文件有多种不同的格式,不同的编译器可能使用不同的格式。目前Visual Studio默认使用的是PDB格式,生成项目之后,在Debug或者Release文件夹下都可以找到与生成的文件同名的PDB文件。本文以及接下来的文章中,均使用PDB格式的符号文件来进行调试。
0 0
- opencv+vs调试符号
- vs设置调试符号pdb
- VS调试中---无法解析外部符号
- opencv 用 vs 2010 单步 调试;
- VS可增加调试效率的伪符号getlasterror
- VS调试时出现“加载符号缓慢的问题”
- VS 调试时“还没有为该文档加载任何符号”
- 正在从以下位置加载符号 VS 调试非常慢
- [VS调试]VS2010 VS2012调试时显示加载符号导致调试特别慢
- [VS调试]VS2010 VS2012调试时显示加载符号导致调试特别慢
- [VS调试]VS2010 VS2012调试时显示加载符号导致调试特别慢
- VS调试提示:无法找到“*.exe”的信息,或调试信息不匹配。未加载符号
- 调试opencv程序,怎么在vs运行下直接调到opencv的源码
- 用VS 2010编译带调试符号(debugging symbols)的OpenSSL库文件
- vs 2005调试“没有为任何调用堆栈框架加载任何符号
- VS调试出错:uafxcw.lib(appcore.obj) : error LNK2001: 无法解析的外部符号 ___wargv
- vs调试dll 当前不会命中断点 还没有为该文档加载任何符号
- VS调试报错 “error LNK2019: 无法解析的外部符号 ......”
- C++中的虚函数
- 虚继承与虚基类的本质
- arm-linux-gcc的下载与安装
- 嵌入式中的存储器分类
- 【VB.Net】最直白的TcpClient代码
- opencv+vs调试符号
- mybatis通过接口实现增删改查方法
- 《深入理解Linux网络技术内幕》阅读笔记(二十二)
- 开始使用CocoaPods管理第3方库
- 内核配置参考
- Image , zImage 和 vmlinux的区别
- 一步步教你使用Proguard混淆Java源代码
- GNU C 和 ANSI C
- linux内核MKDEV()宏