gdb调试技术-创新互联

   自从1969年Unix系统诞生以来,开发该系统的两位牛人Dennis Ritchie和Ken Thompson就琢磨着怎么移植到别的机器上。经过几番折腾,最后在B语言的基础上搞出一门新语言,这就是现在仍活跃在舞台,并且看起来还毫无颓势的C语言。用C语言重写Unix内核后,也让C语言和Unix系统的关系难以分离。所以linux下学习C语言能很容易理解它的一些本质,就像为什么C语言是大小写区分,因为Unix是大小写区分。

创新互联公司于2013年创立,是专业互联网技术服务公司,拥有项目做网站、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元娄烦做网站,已为上家服务,为娄烦各地企业和个人服务,联系电话:13518219792

        C语言之所以能写操作系统,是因为它能操作内存。学习C语言最难也是最根本的就是指针,而指针就是操作内存的。要知道程序在内存中是怎么存储和运行的,就得使用类Unix系统下大名鼎鼎的GDB。

        面向应用的学习,所以现看看几个基础的命令后,对于用到的命令再补充。首先对于要调试的程序在编译时要加上-g参数,把相关调试信息加入到目标文件中。对于用过vc6.0的人来说,总觉得gdb是命令行,用起来不是很顺,还总是怀疑能不能实现vc6.0的功能。等你熟悉gdb后,你会鄙视vc6.0那样的图形化调试工具。

        gdb  -q a.out  // 运行a.out,-q(quiet)不打印一些与gdb相关的信息。

        l (list)

格式:

         list 

        默认情况下是列出当下行的后面10行,而要显示前10行,用 - 参数。当前行是指在用list列出的第一行代表的行,而列出后,当前行仍然是原来的行。即list列出的第一行就是显示后的当前行。

       num1,num2显示num1和num2间的行,两个参数中一个可以可以为空,代表显示10行,从num1开始或者显示到num2。行的前面还可以指定文件名。表显示该文件的num1到num2。默认是当前文件。

        function,显示函数function开始的10行。函数名前还可指定文件名。

        *address,另外,还可以以地址作参数,以行所在内存中的地址前加*。

         要是只给出一个参数,则以该参数为中心显示上下5行。

         show listsize 显示当下默认显示的行数。

         set listsize 设置默认显示的行数。

待续...

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻标题:gdb调试技术-创新互联
本文URL:http://scyanting.com/article/hedhe.html