firemail 发表于 2017-9-6 16:19:46

使用GDB调试

本帖最后由 firemail 于 2017-9-7 17:08 编辑

(gdb) l   <-------------------- l命令相当于list,从第一行开始例出原码。
(gdb)       <-------------------- 直接回车表示,重复上一次命令
(gdb) break 16    <-------------------- 设置断点,在源程序第16行处。
(gdb) break func<-------------------- 设置断点,在函数func()入口处。
(gdb) info break<-------------------- 查看断点信息。

(gdb) r         <--------------------- 运行程序,run命令简写
(gdb) n          <--------------------- 单条语句执行,next命令简写。
(gdb) c          <--------------------- 继续运行程序,continue命令简写。
(gdb) p i      <--------------------- 打印变量i的值,print命令简写。
(gdb) bt      <--------------------- 查看函数堆栈。
(gdb) s      <--------------------- 进入函数内部。stepin 简写s
(gdb) finish    <--------------------- 退出函数。
(gdb) q   <--------------------- 退出gdb。

断点的删除
delete
d 5

firemail 发表于 2017-9-6 16:36:24

cmake调试支持:
CMakeLists.txt中加入
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")

firemail 发表于 2017-9-7 16:13:51

gdb下输入参数
则,运行gcc/g++ -gprog.c/cpp -o prog
就可以用gdb调试程序prog
#gdb prog
进入gdb调试界面
输入参数命令set args 后面加上程序所要用的参数,注意,不再带有程序名,直接加参数,如:
set args -l a -C abc
回车后输入
r
即可开始运行

页: [1]
查看完整版本: 使用GDB调试