• 使用gdb记录


      使用gdb有几年了,但仅仅局限于给学生写个demo之类的,几乎没有什么深究。昨天看到一篇帖子,对C程序运行中的程序栈空间比较感兴趣,就来用GDB看下。俗话说工欲善其事,必先利其器。

    1、配置gdb,如果配置vim你还不会,可以看我的另外的内容。

      首先找到一个非常不错的:https://github.com/gdbinit/gdbinit,没有什么难度,git clone https://github.com/gdbinit/Gdbinit.git,只有两个文件,还有一个readme,将文件直接移动到~下即可,mv Gdbinit/gdbinit ~/.gdbinit完事了

    2、vim编辑代码如下,其中1~9行是vim的自动补全注释完成的,其他的你可以照抄,注释还是自己改下吧

     1 /* *=+=+=+=+* *** *=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=                      
     2   * 作者代号: *** :guochaoxxl
     3   * 版权声明: *** :(魎魍魅魑)GPL3
     4   * 联络信箱: *** :guochaoxxl@163.com
     5   * 文档用途: *** :深入理解C指针
     6   * 文档信息: *** :~/WORKM/testCStack.c
     7   * 修订时间: *** :2021年第28周 07月18日 星期日 下午08:29 (199天)
     8   * 代码说明: *** :自行添加
     9  * *+=+=+=+=* *** *+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+*/
    10 #include <stdio.h>
    11 #include <stdlib.h>
    12 
    13 int main(int argc, char **argv)
    14 {
    15     char stackString[10] = "stackString";
    16     int var1 = 15;
    17     char *heapString = (char *)malloc(50*sizeof(char));
    18 
    19     printf("Enter a string for the stack: ");
    20     gets(stackString);
    21     printf("Enter a string for the heap: ");
    22     gets(heapString);
    23 
    24     printf("Stack string is: %s
    ",  stackString);
    25     printf("Stack string is: %x
    ",  &stackString);
    26     printf("Heap string is: %s
    ", heapString);
    27     printf("Heap string is: %x
    ", heapString);
    28     printf("var1 is: %d
    ", var1);
    29     printf("var1 is: %x
    ", &var1);
    30 
    31 
    32     return 0;
    33 }

      用vim编辑完上述代码后,直接按下F10就可以一键编译程序了,具体可以查找vim配置完成一键编译的配置

    3、进入gdb调试状态

      为了避免进入gdb时的半屏提示信息,使用gdb -q命令进入gdb,接着输入file filename,其中filename是你自己的文件名称,我这里是testCStack,就会出现提示符号gdb了

    人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。
  • 相关阅读:
    atan与atan2的区别
    UVALive 6324 Archery (求射箭覆盖的期望)
    哈希UVALive 6326 Contest Hall Preparation
    HDU 2489 Minimal Ratio Tree (DFS枚举+最小生成树Prim)
    UVA:11183:Teen Girl Squad (有向图的最小生成树)
    POJ3164:Command Network(有向图的最小生成树)
    UVA10462:Is There A Second Way Left? (判断次小生成树)
    UVA10600:ACM Contest and Blackout(次小生成树)
    HDU4081:Qin Shi Huang's National Road System (任意两点间的最小瓶颈路)
    HDU1233:还是畅通工程(最小生成树)
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/15027853.html
Copyright © 2020-2023  润新知