gdb与Cmake的使用

编写程序以及CMakeList.txt文件

代码可在下方链接查看
https://github.com/heyanwei/OpenCVLearning
在此处,只是说明CMakeList.txt中要定义的内容

cmake_minimum_required(VERSION 2.8)
project(DEMO)

SET(CMAKE_BUILD_TYPE "Debug")  # 定义编译类型
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb") # 定义Debug编译参数
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall") # 定义Release编译参数

find_package(OpenCV REQUIRED)

aux_source_directory(. DIRSRCS)
include_directories(${OpenCV_INCLUDE_DIRS}  ./imageProc ./)
add_subdirectory(imageProc)

add_executable(demo ${DIRSRCS})
target_link_libraries(demo ${OpenCV_LIBS} imageproc)

编译

在build目录下使用cmake命令,以便生成的文件都在build文件夹里面
在这里插入图片描述
然后使用make命令编译代码
在这里插入图片描述

调试

使用gdb运行程序

在这里插入图片描述

查看代码

list - l

查看主文件代码

在这里插入图片描述

查看指定函数代码

在这里插入图片描述

设置断点

break - b
在这里插入图片描述

查看所有断点

info break - info b
在这里插入图片描述

断点操作

删除断点

delete + 断点编号

禁用断点

disable + 断点编号

启用断点

enable + 断点编号
在这里插入图片描述

运行

run - r
在这里插入图片描述

开始执行并在main第一行停下来

start - start
在这里插入图片描述

打印内部变量

print - r
在这里插入图片描述

手动修改变量值

set a=1
在这里插入图片描述

跟踪查看变量值

每次停下来都会打印当前值
display - disp
在这里插入图片描述

继续运行直到下一个断点

continue - c
在这里插入图片描述

查看堆栈

查看函数调用信息
backtrace - bt
在这里插入图片描述
查看栈帧
frame - f
在这里插入图片描述

执行下一行(不进入函数)

next - n
在这里插入图片描述

执行下一行(会进入函数)

step - s
在这里插入图片描述

终止正在调试的任务

kill - k
在这里插入图片描述

退出调试环境

quit - q
在这里插入图片描述

调试运行中的程序

2232属于进程号

$ gdb
(gdb) attach 2232

调试子进程

如果需要在执行fork系统调用后继续调试父进程或子进程,那么可以执行下面的操作

(gdb) set follow-fork-mode parent
(gdb) set follow-fork-mode child

调试线程

查看所有线程

(gdb) info threads

不执行其他线程,锁定调试对象

(gdb) set scheduler-locking on

将调试切换到子线程,其ID为3

(gdb) thread 3

显示子线程的调试栈

(gdb) bt
  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 CodeBlocks 中使用 GDB 调试器,您可以按照以下步骤操作: 1. 确保您已经安装了 GDB 调试器。您可以在终端中运行 `gdb --version` 命令来检查是否已安装。 2. 打开 CodeBlocks,并在菜单栏中选择 "Settings"(设置)-> "Debugger"(调试器)。 3. 在 "Selected debugger"(选择调试器)下拉菜单中选择 "GNU GCC Compiler"(GNU GCC 编译器)。 4. 在 "Debugger settings for selected compiler"(选择编译器的调试器设置)面板上,找到 "Executable path"(可执行文件路径)字段,并点击右侧的 "..." 按钮。 5. 在弹出的对话框中,浏览并选择您的 GDB 可执行文件所在的路径。通常情况下,它位于 `/usr/bin/gdb` 或 `/usr/local/bin/gdb`。 6. 确保 "Start from"(开始位置)字段设置为 "GDB/CDB debugger"。 7. 在同一面板上,将 "Additional GDB commands"(额外的 GDB 命令)字段设置为 `-q`。这将禁止显示 GDB 的详细信息,只显示与调试相关的内容。 8. 点击 "OK" 保存更改。 现在,您可以开始使用 GDB 调试器来调试您的代码。请按照以下步骤操作: 1. 在 CodeBlocks 中打开您的项目。 2. 在左侧的工具栏中,找到 "Debug"(调试)按钮,并点击它。或者,您还可以使用快捷键 F8 来启动调试。 3. 当您的程序开始运行时,您可以使用 GDB 提供的调试功能。例如,您可以设置断点、单步执行、查看变量的值等等。 4. 在调试过程中,CodeBlocks 的底部将显示 GDB 的输出和调试信息。您可以在这里查看程序的运行状态和变量的值。 希望这些步骤对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值