1. gdb常用调试命令概览和说明

在这里插入图片描述

2.常用操作样例

gdb 调试
GDB(GNU Debugger)是一个强大的命令行调试工具,可以用于调试C、C++、Go、Python等多种编程语言编写的程序。以下是使用GDB进行调试的基本步骤和示例:

编译程序时,需要加上-g选项以包含调试信息:

gcc -g -o my_program my_program.c

启动GDB:

gdb my_program

在GDB中设置断点:

(gdb) break 10  # 在源代码第10行设置断点

运行程序:

(gdb) run

单步执行:

(gdb) step  # 进入函数内部
(gdb) next  # 跳过函数

检查变量值:

(gdb) print i  # 打印变量i的值

继续执行直到遇到下一个断点:

(gdb) continue

退出GDB:

(gdb) quit

2. 编译c++库设置Debug模式

cmake设置debug
在CMake中设置debug模式通常意味着启用调试信息和优化。以下是一个简单的CMakeLists.txt文件示例,展示了如何设置项目以便在Debug模式下构建:

cmake_minimum_required(VERSION 3.0)
project(MyProject)
 
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb")
set(CMAKE_C_FLAGS_DEBUG "$ENV{CFLAGS} -O0 -Wall -g -ggdb")
# 添加源文件
add_executable(my_executable main.cpp)

在这个例子中:

  • CMAKE_BUILD_TYPE 被设置为 Debug。

  • CMAKE_CXX_FLAGS_DEBUGCMAKE_C_FLAGS_DEBUG 被设置以添加调试选项:

  • -O0 表示禁用优化。

  • -Wall 启用所有编译警告。

  • -g-ggdb 添加调试信息。

请根据您的具体编译器和构建环境调整编译选项。

3.GBD调试

3.1 启动调试

有两种方式:

交互方式:

$ gdb python
...
(gdb) run <programname>.py <arguments>

自动方式:

$ gdb -ex r --args python <programname>.py <arguments>

程序会直接运行到代码断点处、退出、出现错误、Ctrl+C手动停止
如果程序已经运行,你也可以使用process ID

$ gdb python <pid of running process>

3.2 查看调试信息

进入程序后可以使用GDB命令进行调试

参考资料:
https://blog.csdn.net/lyc201219/article/details/129276722
https://wiki.python.org/moin/DebuggingWithGdb

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐