![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GDB
文章平均质量分 80
在水_
安安静静做自己想做的事,做好现在的事!
展开
-
GDB常用命令与Visual Studio对比
——软件调试实战 两种调试器的字检查功能一览表 命令名称 GDB Visual Studio 运行程序 runs [args] F5:Start Debugging (开始调试) 启动程序 start [atgs] F10:Step over (逐过程) 暂停 Ctrl+C Ctrl-Alt+Break:Break Al原创 2015-05-12 17:28:56 · 1475 阅读 · 0 评论 -
1 调试初步
—–软件调试的艺术gcc -glevel sourcefile … 一般,为方便调试器对程序的调试,在用gcc编译程序时可添加-glevel选项: -g 该选项可以利用操作系统的“原生格式(native format)”生成调试信息。GDB 可以直接利用这个信息,其它调试器也可以使用这个调试信息; -g2 这是默认的级别,此时产生的调试信息包括扩展的符号表、行号、局部或外原创 2015-05-12 21:14:31 · 352 阅读 · 0 评论 -
2 检查和设置变量
1.GDB中常用print,display命令输出变量的值。同时GDB和GUI(DDD)都提供了强大的检查变量和数据结构的方式。如二叉树 给定一个二叉树节点如下: struct node { int val; struct node *left; struct node *right }; typedef struct原创 2015-05-13 11:40:32 · 350 阅读 · 0 评论 -
4 解析未定义的符号(上)
1.二分搜索原则对查找未知位置的语法错误非常有用。2.库,库缺少问题 缺少库的常见提醒:undefined reference to “function” 库分为两种:静态库、动态库 当编译调用静态库中函数代码时,那些函数成为最终可执行文件的一部分; 当是动态库时,直到实际执行时,这些函数才会真正附到调动代码上。 在Unix系统上,静态库文件名后面加后缀 .a, 即archive;动态库原创 2015-05-13 21:36:43 · 3884 阅读 · 0 评论 -
5 解析未定义的符号(下)
——《软件调试实战》C++的命名空间、类、模板或函数重载等特征使得编译和链接更为复杂,这使得符号的不匹配更有可能引发链接问题。甚至利用C和C++编译器编译相同的C源代码也会得到不同的符号。 1 符号的反改编(demangle) 为观察经过名称改编的符号,可以对这些符号进行反改编。有两种反改编方法:一是使用实用程序(analysis utility),它们可以在改编和反改编之间切换;二是使用过滤器原创 2015-05-15 16:13:57 · 1714 阅读 · 0 评论 -
7 程序调试进阶
1 在C++函数、方法和操作符中设置断点 info funtions expr list fun_name break ptype C 答应类的信息2 调试静态构造/析构函数 在C++中使用一种称为静态初始化程序的函数或方法来初始化全局对象和静态函数。静态对象的初始化是在main()函数之前进行的。 在某些情况下,可能必须将调试器连接到正在运行的进程,然后对初始化例程原创 2015-05-15 19:44:42 · 391 阅读 · 0 评论 -
6 软件调试基础知识
———《软件调试实战》1.代码评审: 通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动; 白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正; 黑盒测试:又被称为功能测试、数据驱动测试或基于规格说明的测试,是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或原创 2015-05-15 16:21:09 · 622 阅读 · 0 评论 -
3 程序崩溃处理
——《软件调试的艺术》1.程序崩溃:当某个错误导致程序突然和异常地停止执行。 最常见的导致程序崩溃的原因是试图未经允许的情况下访问一个内存单元; Unix系统上,操作系统一般会宣布程序导致了段错误(segmentation fault); Window系统上,对应的术语一般是保护错误(general protection fault); 无论哪个名称,硬件都必须支持虚拟内存,而且操作系统必须原创 2015-05-13 17:06:47 · 1180 阅读 · 0 评论