上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 93 下一页
摘要: 使用gdb前需要加编译参数 -g 要调试C/C++的程序,首先在编译时,我们必须要把调试信息源程序信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如: gcc -g hello.c -o hello g++ -g hello.cpp -o hello 如果没有-... 阅读全文
posted @ 2011-07-12 07:38 dzqabc 阅读(7545) 评论(6) 推荐(0)
摘要: 七、八年前写过一篇《用GDB调试程序》,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题。这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来。希望大家补充。 一、多线程调试 多线程调试可能是问得最多的。其实,重要就是下面几个命令: info ... 阅读全文
posted @ 2011-07-11 07:51 dzqabc 阅读(4198) 评论(0) 推荐(0)
摘要: 线程有自己的寄存器,运行时堆栈或许还会有私有内存。 gdb提供了以下供调试多线程的进程的功能: * 自动通告新线程。 * \ "thread THREADNO\ ",一个用来在线程之间切换的命令。 * \ "info threads\ ",一个用来查询现存线程的命令。 * \ "thread apply [THREADNO] [ALL] ARGS\ ",一个用来向线程提供命令的命令。 * 线程有关的断点设置。 注意:这些特性不是在所有gdb版本都能使用,归根结底要看操作系统是否支持。 如果你的gdb不支持这些命令,会显示出错信息: ( 阅读全文
posted @ 2011-07-09 08:08 dzqabc 阅读(9731) 评论(0) 推荐(0)
摘要: 作者:破砂锅 开源的GDB被广泛使用在Linux、OSX、Unix和各种嵌入式系统(例如手机),这次它又带给我们一个惊喜。 多线程调试之痛 调试器(如VS2008和老版GDB)往往只支持all-stop模式,调试多线程程序时,如果某个线程断在一个断点上,你的调试器会让整个程序 freeze,直到你continue这个线程,程序中的其他线程才会继续运行。这个限制使得被调试的程序不能够像真实环境中那样... 阅读全文
posted @ 2011-07-09 08:05 dzqabc 阅读(8261) 评论(0) 推荐(0)
摘要: 在使用gdb 调试 程序 的时候,有时候需要设定多个断点,重复执行某些操作,而这些操作写起来比较麻烦,这个时候就应该想起来用gdb命令 脚本了,它能够很好的完成这些工作。有两种方式来使用脚本:1)启动gdb时候gdb在启动的时候,会在当前目录 下查找".gdbinit"这个文件作为初始化脚本 ,并把它的内容作为gdb命令进行解释,所以如果我把脚本命名为".gdbinit",这样在启动的时候就会处理这些命令。2)gdb运行期间可以使用 source script-file 来解释gdb命令脚本script-file 阅读全文
posted @ 2011-07-06 00:21 dzqabc 阅读(1152) 评论(0) 推荐(0)
摘要: ################################################################################## # # # STL GDB evaluators/views/utilities # # # ########################################## # # The new GDB commands: #... 阅读全文
posted @ 2011-07-06 00:16 dzqabc 阅读(825) 评论(0) 推荐(0)
摘要: 函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是一致的。函数指针有两个用途:调用函数和做函数的参数。方法 函数指针的声明方法为: 数据类型标志符 (指针变量名) (形参列表); 注1:“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形... 阅读全文
posted @ 2011-06-30 08:04 dzqabc 阅读(567) 评论(0) 推荐(0)
摘要: Thunk 技术的一个改进 作者:南风 下载源代码 摘要:介绍了 thunk 技术中如何避免直接写机器码。 关键字:Thunk 机器码 this指针 Thunk技术,一般认为是在程序中直接构造出可执行代码的技术(在正常情况下,这是编译器的任务)。《深度探索C++对象模型》中对这个词的来源有过考证(在中文版的162页),说thunk是knuth的倒拼字。knuth就是大名鼎鼎的计算机经典名著《Th... 阅读全文
posted @ 2011-06-29 00:37 dzqabc 阅读(513) 评论(0) 推荐(0)
摘要: 2009年7月30日 kunlun 发表评论 阅读评论 链接: C++虚函数探索笔记(1)——虚函数的简单示例分析 C++虚函数探索笔记(2)——虚函数与多继承 C++虚函数探索笔记(3)——延伸思考:虚函数应用的一些其他情形 关注问题: 虚函数的作用 虚函数的实现原理 虚函数表在对象布局里的位置 虚函数的类的sizeof 纯虚函数的作用 多级继承时的虚函数表内容 虚函数如何执行父类代码 多继承... 阅读全文
posted @ 2011-06-28 00:31 dzqabc 阅读(2406) 评论(0) 推荐(0)
摘要: C++虚函数探索笔记(1)——虚函数的简单示例分析 C++虚函数探索笔记(2)——虚函数与多继承 C++虚函数探索笔记(3)——延伸思考:虚函数应用的一些其他情形 关注问题: 虚函数的作用 虚函数的实现原理 虚函数表在对象布局里的位置 虚函数的类的sizeof 纯虚函数的作用 多级继承时的虚函数表内容 虚函数如何执行父类代码 多继承时的虚函数表定位,以及对象布局 虚析构函数的作用 虚函数在QT的... 阅读全文
posted @ 2011-06-22 00:28 dzqabc 阅读(429) 评论(0) 推荐(0)
上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 93 下一页