C/C++程序调试

在使用IDE(Qtcreator/VS)进行开发中,GDB/CDB都已经集成到开发环境中!
qtcreator只支持gdb和cdb两种调试器。

CDB

windows系统下主要的调试器CDB(Console Debugger)的简称,只能调试用户程序,只有控制台界面,以命令行形式工作。

平台/Platform编译器/Compiler调试器/Native Debugger
LinuxGCC/ICCGDB, LLDB (experimental)
UnixGCC/ICCGDB
macOSGCC/ClangLLDB,FSF GDB(experimental)
Windows/MinGWGCCGDB
Windows/MSVCMicrosoft Visual C++ CompilerDebugging Tools for Windows/CDB

如windows平台上面MinGW版本的qtcreator就支持GDB调试器。而MSVC版本的qtcreator默认是没有调试器的,需要自己去安装并设置好调试器(CDB)。

GDB

GDB的全称是GNU project debugger,虽然它是命令行模式的调试工具,但是它的功能强大到你无法想象.

  • 介绍: gdb是Linux环境下的代码调试工具
  • 使用:需要在源代码生成的时候加上 -g 选项
  • 开始使用: gdb binFile
  • 退出:ctrl + d 或 quit
  • 提供了以下的功能:
    1.在程序中设置断点,当程序运行到断点处暂停
    2.显示变量的值,可以打印或者监视某个变量,将某个变量的值显示出来
    3.单步执行
    4.运行时修改变量的值.5跟踪路径.6.线程切换,等等。

GCC

gcc命令使用GNU推出的基于C/C++的编译器,是开放源代码领域应用最广泛的编译器。
语法
gcc(选项)(参数)

选项

-o:指定生成的输出文件;
-E:仅执行编译预处理;
-S:将C代码转换为汇编代码;
-wall:显示警告信息;
-c:仅执行编译操作,不进行连接操作。
-g:只是编译器,在编译的时候,产生调试信息。 

参数
C源文件:指定C语言源代码文件。

例如
`gcc -g -o LearnGDB LearnGDB.c
指定只是编译,生成的输出文件是LearnGDB

使用GDB调试程序

LearnGDB.c 源代码

#include<stdio.h>
#include<math.h>
int main(void)
{
    float pi=3.1415926;
    float R;
    float S=0;

    printf("Please input your Raius\n");
    scanf("%f",&R);
    if (R>=0)
    {
      S=pi*R*R;
      printf("The value of S is:%f\n",S);
    }
    else
     printf("Sorry, Wrong input!!\n");
    return 0;
}
  • 要使用GDB调试程序,在编译程序的时候需要加入 “-g”选项
    `gcc -g -o LearnGDB LearnGDB.c
  • gdb加载程序 命令格式:”gdb 要调试的文件全名”
    $ gdb LearnGDB
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/osean/Coder/LearnGDB...done.
(gdb) 

此时已经进入到GDB模式
使用如下命令启动gdb: gdb -tui LearnGDB 或者在启动gdb后, 输入命令focuslayout:

  • list默认参数可以用show listsize来查看
    list 5,10 显示第5行到第10行的代码;

  • shell clear清空屏幕

  • break 设置一个断点

  • 使用clear命令和delete命令 删除断点
  • run 开始执行程序
  • continue 让程序继续运行,直到下个断点或者结束
  • print R
  • next继续执行下一条语句,只执行一条。
  • quit退出gdb调试
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值