zoukankan      html  css  js  c++  java
  • gcc与gdb使用学习笔记

    今天学习了一下gcc与gdb的具体使用方法。并亲自用gdb调试了一下程序。gdb还是用不熟,只能以后慢慢加深体会了。

    1GNU C编译器(即GCC

    gcc -v GCC版本

    -c:仅把源代友编译为目标代码;

    -sGCC在为C代码产生了汇编语言文件后,就停止编译。GCC产生的汇编语言文件的缺省扩展名为.s。  使用方法:gcc -S 2-20.c -o 2-20.s  注意是大写S

    -E:指示编译器仅对输入文件进行预处理。此时,预处理器的输出被送到标准输出(如显示器)而不是储存在文件里。

    -OGCC对源码进行基本优化。

    -O2GCC产生尽可能小和尽可能快的代码

    -g选项告诉GCC产生能被GNU调试器(如gdb)使用的调试信息,以便调试用户的程序。

    -pg选项告诉GCC在用户的程序里加入额外的代码,执行时,产生gporf用的剖析信息以显示程序的耗时情况。

    gcc info page:详细GCC编译器参数的说明,在Emacs内,按下Chi,然后选“gcc”的选项。

     

    2、使用gdb

    gdb filename:能直接指定想要调试的程序。也可用gdb去检查一个因程序异常终止而产生的core文件,或者与一个正在运行的程序相连。

    1)为使gdb正常工作,必须使程序在编译时包含调试信息。调试信息包含程序里的每个变量的类型、在可执行文件里的地址映射以及源代码的行号。

    2gdb命令一览:

    file:装入想要调试的可执行文件

    kill:终止正在调试的程序;

    list:列出产生执行文件的源代码的一部分

    next:执行一行源代码但不进入函数内部;

    step:执行一行源代码而且进入函数内部;

    run:执行当前被调试的程序;

    quit:终止gdb

    watch:能监视一个变量的值 而不管它何时被改变;

    print:显示表达示的值;

    break:在代码里设置断点,这将使程序执行到这里时被挂起;

    make:不退出gdb就可以重新产生可执行文件

    shell:不离开gdb就执行UNIX shell命令

    3)可在gdb中按Tab键让gdb补齐一个命令。


    from: http://www.cnitblog.com/zouzheng/articles/25336.html

  • 相关阅读:
    mmall商城用户模块开发总结
    Hadoop伪分布式安装与配置
    1.2假设空间
    1.1基本术语
    文献笔记
    文献下载
    文献管理
    文献检索
    python:函数详解2
    python:函数详解
  • 原文地址:https://www.cnblogs.com/keepfocus/p/2177250.html
Copyright © 2011-2022 走看看