firemail

标题: 使用GDB调试 [打印本页]

作者: firemail    时间: 2017-9-6 16:19
标题: 使用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 [breakpoints num] [range...]
d 5

作者: firemail    时间: 2017-9-6 16:36
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
gdb下输入参数
则,运行gcc/g++ -g  prog.c/cpp -o prog
就可以用gdb调试程序prog
#gdb prog
进入gdb调试界面
输入参数命令set args 后面加上程序所要用的参数,注意,不再带有程序名,直接加参数,如:
set args -l a -C abc
回车后输入
r
即可开始运行






欢迎光临 firemail (http://firemail.wang:8088/) Powered by Discuz! X3