zoukankan      html  css  js  c++  java
  • 06.gdb入门(下)

    ◊基本框架:

      a)         查看运行时数据

      b)         程序错误类型

      c)         Gdb调试段错误

      d)         Core文件调试

    6.1  查看运行时数据

      1)  print                                      查看变量值

      2)      ptype                           查看变量类型

      3)  print  array              查看静态数组

      4)  print  *array@len 查看动态内存(malloc),也可以查看静态数组。

      5)  print  x=5                 动态改变运行时数据

    6.2  程序错误类型

      1)  编译错误:  程序语法上的错误,可以借助gcc来查找错误。

      2)      运行错误:编译器检查不出来,但在运行时可能会导致程序崩溃。

                        比如说:非法的地址访问。

      3)  逻辑错误:编译和运行都很顺利,但是程序没有干它该干的事。

    6.3  Gdb调试段错误

      段错误是由于访问非法地址而产生的错误,主要有两种:

      1)  访问系统数据区

            例如:往系统保护的内存地址写数据;

      2)  内存越界

            例如:数组越界,访问到不属于该数组的内存区域。

          注意:写程序的时候要尽量避免内存越界,因为有时候即使内存越界了,系统也不报错。

    6.4  Core文件调试

    1)core文件

             把进程崩溃时的当前内存状态信息(内存印象)输出到core文件(进程的尸体)里,然后可以将出错的可执行文件和core文件提交给gdb,这样就可以精准定位错误。

         Core文件的生成过程叫做core  dump。

    2)      设置生成core文件

                       Ulimit  –c            查看系统默认生成的core文件的大小。

                Ulimit  -a            查看所有的参数状态

                       Ulimit  -c  unlimited  将默认生成的core文件大小设置成无限制。

    3)   Gdb利用core文件调试

        首先:Gdb  +可执行文件 +core文件;

        然后:利用bt(backtrace)命令把出错处的函数调用关系找出来.

  • 相关阅读:
    [WPF 自定义控件]好用的VisualTreeExtensions
    [UWP]从头开始创建并发布一个番茄钟
    [WPF 自定义控件]使用TextBlockHighlightSource强化高亮的功能,以及使用TypeConverter简化调用
    [WPF 自定义控件]排序、筛选以及高亮
    《写给大家看的设计书》,推荐给想了解设计的程序员
    [WPF 自定义控件]使用WindowChrome自定义RibbonWindow
    [书籍]通过《番茄工作法图解》复习番茄工作法
    [WPF 自定义控件]使用WindowChrome的问题
    [WPF 自定义控件]使用WindowChrome自定义Window Style
    时时监听input内容的改变
  • 原文地址:https://www.cnblogs.com/zkw-2014/p/4417984.html
Copyright © 2011-2022 走看看