zoukankan      html  css  js  c++  java
  • gdb扫盲

            和makefile一样,对makefile不熟悉的人对gdb大部分肯定也是不熟悉的。没办法,这两个东西其实是相辅相成的。对于gdb,如果我换一种叫法,大家肯定耳熟能详了。另外还一个名词就是:debug。

            熟悉吧?用IDE的同志们是不是天天在用?debug能干什么呢?单步调试,查看变量,监视变量,等等。那么gdb可以说是毫不示弱,他也能完成这些功能,可能就是要你自己动手没有IDE那么方便而已。

            使用gdb,那么首先要熟悉编译命令,一般c的编译命令都是gcc或者cc,那么怎么构建供gdb调试的程序呢?你只要在gcc命令后面加上-g参数即可。表示生成可调试程序。什么叫可调试程序呢?其实和发布版程序没有什么不同,就是加入了源代码的信息而已。但是不是把源代码“嵌入”到你生成的文件中,而是把源代码的信息链接到你生成的文件中。这个地方有点绕口,怎么说明白呢?就是你可以把生成文件中的源代码信息看成是真实源代码的一个快捷方式。这么理解可能会快一点。

            那么我们生成了需要调试的文件,那么我们就可以使用gdb命令来调试了,首先你得运行gdb命令,然后出现gdb的提示符,这个时候如果你的程序需要使用参数,那么你可以在gdb命令提示符下使用“run 参数”命令设置参数,再start,ok,这样就可以调试了。n命令是整个过程,s是单步,会进入函数内部,p varname是打印你需要查看的变量或者产量的值。基本上这么多就够用了。还有一些监视变量的值,断点等等功能我现在也还没有用到,所以还不好说。因为我这个人一贯的方法就是用到多少学多少。哈哈

           还记得上次我写的一个makefile文件吗?makefile_gdb文件。这个文件就是里面的编译命令全部加上了-g的参数来表示生成供gdb调试版本的程序。这样你就能很方便的生成你的debug版本程序供你调试,要发布的时候,再把-g的参数去掉,ok那就是你需要的“简单发布版”makefile文件。你只要稍加修改就可以作为你的发布版文件了。

  • 相关阅读:
    datanode报错Problem connecting to server
    使用命令查看hdfs的状态
    Access denied for user root. Superuser privilege is requ
    ElasticSearch默认的分页参数 size
    SparkStreaming Kafka 维护offset
    【容错篇】Spark Streaming的还原药水——Checkpoint
    251 Android 线性与相对布局简介
    250 Android Studio使用指南 总结
    249 如何解决项目导入产生的中文乱码问题
    248 gradle更新问题
  • 原文地址:https://www.cnblogs.com/Seapeak/p/1675296.html
Copyright © 2011-2022 走看看