• Linux下使用GDB调试程序


    问题描述:

             Linux下使用GDB调试程序

    问题解决:

             (1)生成调试文件

    生成gdb文件

    注:

            使用命令   gdb IOStream.c   -o IOStream  -g  最后一个参数是生成gdb调试文件的参数信息(必不可少,否则生成的是可执行的文件)。

            上述出现如上的警告信息,解决的办法是在IOStream.c文件中引用    #include<stdlib.h>

            (2)载入生成的gbd文件IOStream

    启动gdb

    注:   

            在Console中输入gdb启动gdb调试

    载入gdb文件

    注:

             使用file IOStream   命令载入gdb文件

    设置参数

    注:

      set args 参数名 设置运行文件的参数值   

            show args 显示参数信息

            (3)源程序信息预览

    infosource

    注:

               使用命令  info souce 可以查看源程序信息。

            (4)源代码预览

    当前行之后的代码    ·       

    注:

      list <linenum>         显示程序第linenum行的周围的源程序。   

        list <function>         显示函数名为function的函数的源程序。       

        list            显示当前行后面的源程序。   

        list  -         显示当前行前面的源程序。

        list +         显示当前行之后的源程序

    list line

    注:

             使用list <linenum>显示指定行前后的部分代码

    shellclear

    注:

            gdb调试时,屏幕信息太多,导致难以看清楚,这时可以使用  shell   clear  命令,清除当前屏幕信息。

         (5)设置断点

    设置断点

    注:

            使用命令   b <linenum> 或者 b <funname>  可以在指定行或者指定函数名称处设置断点。

    查看断点

    注:

            使用info  br 或者 info breakpoints 查看断点信息。

    删除所有断点

    注:

          删除断点可以有以下几种方式:

    (1)clear 行号 

             (2)delete 断点号

             (3)clear 函数名

         上述三种方式都可以删除断点

             (4)删除所有断点  delete

        (5)开始调试

    执行命令

    注:

            使用命令  run 或者 r 可以开始对载入的文件进行调试,程序在第一个断点处停止,可以使用命令 p 变量名  输出变量名对应的值。

       s 表示step的含义,单步执行

    next

    注:

    next命令,是按照行执行,如果该行有函数调用,单步调试会跳转到程序中,next会执行运行结束该函数调用,无须进入。

    display

    注:

    display命令,用于跟踪某个变量的变化,每次执行都会输出该变量的值。

            (6)终止调试

    kill

    注:

    命令kill  终止当前正在调试的程序

           (7)退出gdb

    quit

    注:

          使用命令 quit 或者 q    可以退出gdb

  • 相关阅读:
    CentOS中用top命令CPU负载
    Oracle文档阅读指南
    修改oracle用户密码永不过期
    让secureCRT以命令行方式启动图形界面
    .NET 2.0 SQL依赖注意事项(转载:原文《使用SQL Server 2005 Query Notification的几个注意事项》)
    SQL Server 2005服务状态管理工具
    一个常用的正则表达验证类
    解决TFS中MSBuild开发项目和开发编译中一些冲突(小技巧)
    ASP.NET 2.0 WebService中传递DataTable参考
    LightningFramework系列(各层详细设计类图)
  • 原文地址:https://www.cnblogs.com/luosongchao/p/3297600.html
Copyright © 2020-2023  润新知