自学内容网 自学内容网

【C++】在windows下配置一个小巧实用的C/C++调试环境

目录

1.准备环境

2.cgdb

3. gdb-dashboard

4.常用命令

4.1 cgdb命令

4.2 gdb常用命令


虽然在大部分常用的C/C++编辑器中,调试功能已经很方便且完善,但是,如果你还需要一个小巧一点,调试信息还完善的调试环境的,可以试试在cygwin中安装cgdb+gdb-dashboard的这种配置

测试环境windows10 、cygwin

1.准备环境

        cygwin是必须要的,cygwin要安装的软件包需要python,cgdb、make、cmake、gcc、g++等gcc相关软件包

        以上都准备好以后,编写一个用于测试的c++程序,这个也不是必须的,如果你有现成的可调试项目也可以用自己的项目

        首先创建一个文件夹,命名为test,在根目录里创建一个main.cpp,内容如下

#include <iostream>
#include <ostream>
using namespace std;
void fun(int a){
   cout << a <<endl; 
}
int main(int, char**) {
   fun(1);
   return 1;
}

再创建一个cmake文件,命名为CMakeLists.txt,内容如下

cmake_minimum_required(VERSION 3.0.0)
project(app VERSION 0.1.0)
SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")
AUX_SOURCE_DIRECTORY(. DIR_SOURCE)
add_executable(app ${DIR_SOURCE})

 然后在test根目录下在创建一个build文件夹,用于存放make和最终生成的应用程序

 以上工作都准备好以后,打开cygwin,在命令行中,进入test文件夹

cd /cygdrive/XXXXX/test/build

然后依次执行如下代码

cmake ..
make

看一下build文件夹中生成app.exe 没有,如果生成了,准备工作就完成了

2.cgdb

        CGDB可以看做是gdb的一个前端,它使得调试更加方便和直观。用户可以通过键盘进行调试操作。它还具有语法高亮、代码缩进的功能。还可以断点设置、单步执行、变量查看等。它还提供了堆栈追踪和程序状态查看的功能,除了基本的调试功能,还可以反汇编、内存查看等。他可以在Linux上安装,同样也可以安装在cygwin中。

       在上一步中已经安装过了,本节就讲讲如何使用和配置cgdb

       现在cygwin中已经安装了cgdb,也有了用于测试的程序,就可以用cgdb打开调试了,在cygwin中进入build文件夹,然后输入如下命令

cgdb ./app

       然后敲个回车,会看到如下界面,这个就是cgdb的调试界面

然后在(gdb)命令行中输入b 5 卡一个断点,回车,再继续输入 r 然后回车,上面源代码界面会看到断点指针指向了行号是5的地方

这个就是cgdb的基本使用,但是上下分栏看的不太舒服,左右分栏就会看的好一下,这就还需要设置一下,打开你的cygwin 目录 找到\home\(用户名)\.cgdb\cgdbrc  文件,打开他,如果没有,就创建一个,输入以下内容

:set winsplitorientation='vertical'

然后重新打开cgdb,看源码和操作区,默认就已经变成左右分栏了

如果对分栏宽度不满意,可以用alt+(加号键)或者alt+(减号键),控制源代码和操作区的宽度

3. gdb-dashboard

      虽然按照以上配置,已经可以有个比较好的调试体验了,但是,如果还想要得到更好的调试体验,就还需要给gdb加点其他配置,让他输出的信息更多一点,让我们少输入一点命令。

     这个就要说一下gdb-dashboard了,

     gdb-dashboard是一款为gdb提供一个更加友好和可定制的前端界面的工具。它可以为开发者提供一个图形化界面来查看和调试程序的状态,并提供一些快捷键和命令来快速访问gdb的功能.他并不是一个程序,它只是一个用python写的配置文件,从下面地址,把.gdbinit文件下载下来,放到你的cygwin,\home\(用户名)下就行了,

https://github.com/cyrus-and/gdb-dashboard

放好以后,再重新启动cgdb,会出现如下界面,这个就是用了gdb-dashboard后的效果

这次看的就帅多了,右侧操作区多了汇编、堆栈、源码、局部变量等

但是,有些功能可能是不常用的,没关系,他能配置,用不到的可以给他关闭了,具体操作,在cygwin目录下\home\(用户名)\.gdbinit.d 文件下,找到init文件,如果没有这个文件的话的话,自己创建一个也行。在里面输入

dashboard -layout variables stack assembly

然后重新打开cgdb,在右侧功能区,就只能看到变量、栈、汇编信息了

它还有其他的一些配置方式,具体有什么配置,可以如下操作

在cgdb或者gdb环境内,输入

 help  dashboard

会输出帮助信息,可以按照帮助信息进行配置

4.常用命令

        以上就是一个调试环境的建立,这个环境,不光在cygwin下,在linux下也是可以用,但是操作方式都是通过键盘和命令键入的方式,所以,还需要介绍一下常用的操作命令和按键

4.1 cgdb命令

命令说明
ctrl+w切换分栏方式
page up上翻页
page down下翻页
esc推出命令模式
i进入命令模式
ctrl+l清除操作区记录
o打开这个程序,使用的所有代码文件列表
F5启动程序
F6运行程序知道下一个断点停止
F7执行完当前代码
F8执行下一步
F10进入一个函数
空格下断点

4.2 gdb常用命令

命令

缩写

说明

list

l

显示源代码

break

b

设置断点

info

i

描述程序的状态

run

r

运行程序

display

disp

跟踪某个变量,

step

s

执行下一条语句,进入调用函数内

next

n

执行下一条语句,

print

p

打印内部变量值

continue

c

运行程序直到下一个断点

start

st

在main函数的第一句停住

kill

k

终止程序

backtrace

bt

产看函数调用堆栈

frame

f

查看栈帧

quit

q

退出调试环境


原文地址:https://blog.csdn.net/weixin_44305576/article/details/143735740

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!