zoukankan      html  css  js  c++  java
  • 源码调试debug_info 的作用和使用方法

      在他通过gcc来编译程序时,在map文件中,经常会遇到如下的情况:

    .debug_info 0x002191b6 0x1aa9 XXX

    .debug_info 0x0021ac5f 0xce4 XXX
    .debug_info 0x0021b943 0x9cf XXX
    .debug_info 0x0021c312 0x1119 XXX
    最近遇到了一些问题,需要查看map文件中的信息时候,发现上面的一些debug信息一直在

    map文件中,这些到底是什么作用呢?通过什么来生成的呢? 看来自己知识体系中还存在不少

    漏洞,要补一补了。

      通过查阅GNU的官方文档,才发现这个gcc是通过添加编译选项-g来控制输出编译调试信息的

    通过这个调试信息,能方便的调试程序,具体调试过程和使用方法见文档:

      http://blog.techveda.org/howsourcedebuggerswork/ 

    这篇文档写的很好,介绍的相当清晰。

      笔者尝试过,通过在编译选项中加入如下,可以很方便的来控制是否有debug信息编译出来,

    KBUILD_CFLAGS   += -g

    把这个去掉debug信息就没了。

      gcc参考文档:

    https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html 

  • 相关阅读:
    哈希表
    c++中的虚函数
    struct并不报错
    c风格的字符串
    动态数组
    常量指针和指针常量
    关于struct和typedef struct
    常量成员函数
    关于free的使用疑惑
    mutable用于修改const成员函数中的成员变量
  • 原文地址:https://www.cnblogs.com/dylancao/p/8403533.html
Copyright © 2011-2022 走看看