电脑,python环境
01首先打开电脑后,打开终端,我这里以调试debug.py文件做说明,简单介绍python的pdb调试。为了演示,先用cat命令查看一下改并租debug.py的内容。
02我这里用的python3的环境,在终端里输入如图显示python3 -m pdb debug.py命令。就是就是用核兆python的pdb模块调试debug.py文件代码。
03进入调试后,在终端里输入小写字母l,就是英文单词list的缩写,意思就是列出代码内容。如果显蔽空示。
04在终端里输入小写字母n,就是英文单词next的缩写,意思就是执行下一行代码。
05在终端里输入小写字母p x,p就是英文单词print的缩写,意思就是打印变量x的值。
06在终端里输入小写字母s,s就是英文单词s的缩写,进入函数内部调试。
07在终端里输入小写字母a,a就是英文单词arguments(参数)的缩写,会打印显示函数所有变量的值。
08在终端里输入小写字母c,就是英文单词continue的缩写,意思就是继续执行代码一直结束,然后重新进入调试。
09在终端里输入小写字母b和阿拉伯数字6,b就是英文单词break的缩写,意思就是在第6行代码打个断点。
10在终端里输入小写字母q,q就是英文单词quit的缩写,意思就是退出调试。
程序数据库 (PDB) 文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。当用 /ZI 或 /Zi 编译 C/C++ 程序时或用 /debug 编译 Visual Basic/C#/JScript .NET 程序时将创建 PDB 文件。在 Visual C++ 中,/Fd 选项用于命名由编译器创建的 PDB 文件。当在 Visual Studio 中使用向导创建项目时,/Fd 选项被设置为创建名为 project.PDB 的 PDB 文件。
如果使用生成文件创建 C/C++ 应用程序,并指定 /ZI 或 /Zi 而不指定 /Fd 时,则最终将生成两个 PDB 文件:
VC70.PDB (更笼统地说就是 VCx0.PDB,其中 x 表示 Visual C++ 的版本。)该文件存储各个 OBJ 文件的所有调试信息并与项目生成文件驻留在同一个目录中。
project.PDB 该文件存衡此储 .exe 文件的所有调试信息。对于本机代码,它驻留在 \debug 子目录中。对于托管代码,它驻留在 \WINDEBUG 子目录中。
每当创建竖数 OBJ 文件时,C/C++ 编译器都将调试信息合并到 VCx0.PBD 中。插入的信息包括类型信息,但不包括函数定义等符号信息。因此,即使每个源文件都包含公共头文件(如 <windows.h>),这些头文件中的 typedef 也只存储一次,而不是在每个 OBJ 文件中都存在。
链接器将创建 project.PDB,它包含项目的 EXE 文件的调试信息。project.PDB 包含完整的调试信息(包括函数原型),而不仅仅是 VCx0.PDB 中的类型信息。这两个 PDB 文件都允许增量更新。
Visual Studio 调试器使用由链接器直接创建的 project.PDB 文件并将此 PDB 的绝对路径嵌入到 EXE 或 DLL 文件中。如果调试器在该位置无法找到 PDB 文件或者如果路径无效(例如,如果项目被移动到了另一台计算机上),调试器将搜索包含 EXE 的路径,即在解决方案的“属性页”中指定的“符号路径”(“调试符号文件”页 ->“通用属性”文件夹)。调试器不会加载与所咐纤迅调试的二进制不匹配的 PDB。
搂主看看帮助先,自己找答案也是很有乐趣的。
这是因为在 Windows 系统中,pdb 文件是 Visual C++ 调试旦谨的辅助文件,用来存储程序的调试信息,可以模慧基帮助 Visual C++ 在调试时识别程序中碧告的变量、函数等信息,而且这些文件是不可读的,所以无法被查找或打开。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)