zoukankan      html  css  js  c++  java
  • 每天学点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的值,并继续执行剩下的程序。

  • 相关阅读:
    【BZOJ1015】星球大战starwar
    【BZOJ1878】HH的项链
    【BZOJ1012】最大数maxnumber
    【BZOJ3767】A+B Problem加强版
    【BZOJ1406】密码箱
    【BZOJ1067】降雨量
    【BZOJ1305】dance跳舞
    【BZOJ1509】逃学的小孩
    【BZOJ1103】大都市meg
    【BZOJ3262】陌上花开
  • 原文地址:https://www.cnblogs.com/hseagle/p/2981447.html
Copyright © 2011-2022 走看看