• 每天学点GDB 2


    在一中提到GDB最最基本的用法,在本节主要讲述一下如何让GDB在断点处打印一下诊断信息,但程序执行本身不会中断。

    先稍微改一改源程序

    #include <stdlib.h>
    #include <stdio.h>
    
    int main(int argc, char** argv) {
      int i = 0;
      printf("hello,world\n");
      for ( i = 0; i < 20; i++ ) {
        printf("now, the seq is %d\n",i);
      }
      return 0;
    }
    

    假设要在执行期间查看i值的变化。如果是step by step的办法,具体步骤如下。

    设置断点

    gdb)break 8

    执行程序

    gdb)run

    在断点处停止执行,执行如下指令显示i的值

    gdb)p i

    继续程序执行

    gdb)continue

    上述步骤会一直重复出现,如果想一次性设定后,让程序执行不因断点设置而中断,可采用下述办法。

    gdb)commands

    Type commands for breakpoint(s) 1, one per line.
    End with a line saying just "end".
    >silent
    >p i
    >conti
    >end
    

    输入end表示在断点处的批处理结束,再次回到gdb。

    p i 表示指印i的值

    conti 表示继续程序执行

    gdb)run

    这样每次在断点处会自动打印变量i的值,并继续执行剩下的程序。

  • 相关阅读:
    js的alert乱码问题
    (6)select语句
    (5)视图
    (4)索引
    (3)操作数据库
    (2)MySQL数据类型
    (1)MySQL概述
    RocketMQ安装使用
    uniapp打包h5
    面试必问 如何保证缓存与数据库的一致性
  • 原文地址:https://www.cnblogs.com/hseagle/p/2981447.html
Copyright © 2020-2023  润新知