gdb调试讲解,快速入门
来源:互联网 发布:菲尔杰克逊数据 编辑:程序博客网 时间:2024/05/22 15:22
使用gdb步骤
启动程序的方法
- gdb + 运行程序(一般在当前目录下,如果不是,要指定路径)
- gdb + 运行程序 + core文件。通过这个方法可以加载异常出错时的堆栈信息
- gdb + 运行程序 + 进程ID。通过这种方法可以对你正在运行的程序进行调试。
如:
$ gdb cppapplication_2.exe
设置运行时参数,有两种方法
- 在gdb + 运行程序 + 运行参数
- 启动了gdb后,运行set args + 运行参数
设置断点,方法
- b(break) + 文件名:行数
- b + 文件名:函数 (类内部的函数不能用这种方法)
- b + 类::函数
如:
(gdb) b main.cpp:foo
Breakpoint 1 at 0x401392: file main.cpp, line 16.
(gdb) b main.cpp:36
Breakpoint 2 at 0x4013b6: file main.cpp, line 36.
(gdb) b A::printA
Breakpoint 3 at 0x401c2a: file main.cpp, line 27.
(gdb) info break
Num Type Disp Enb Address What
1 breakpoint keep y 0x00401392 in foo(int) at main.cpp:16
2 breakpoint keep y 0x004013b6 in main(int, char**) at main.cpp:36
3 breakpoint keep y 0x00401c2a in A::printA() at main.cpp:27
(gdb)
gdb调试常用参数
- r(run) : 开始运行程序;
- c(continue) : 继续运行一直到断点停止
- b(break) : 设置程序断点;
- p(print) : 打印出变量值;如 p var,会把var变量的值输出
- s(step) : 单步跟踪,会进入函数内部
- n(next) : 单步跟踪,不进入函数
- finish : 跳出函数调试,并打印返回时的信息
- u(until) : 跳出循环体
- q(quit) : 退出gdb
- l(list) : 显示当前行后面的源程序
- bt (backtrace) : 查看堆栈信息
- info : 查看各类gdb信息以及环境信息,比如:info break 可以查看断点信息
- clear : 清除全部已定义的断点
- delete : 删除指点的断点号,后面接断点号.如:
Breakpoint 4 at 0x401c36: file main.cpp, line 28.
(gdb) delete 4
(gdb) info break
No breakpoints or watchpoints.
(gdb)
我下面是我本次使用的例子
#include <stdio.h>using namespace std;void foo(int sum){ printf("sum 2: %d", sum); return ;}class A{public: A(){} ~A(){} void printA() { printf("printf A!!"); }};/* * */int main(int argc, char** argv) { int sum = 0; for (int i= 0; i< 100; ++i) { sum += i; } printf("sum :%d", sum); foo(sum); A test; test.printA(); return 0;}
- gdb调试讲解,快速入门
- GDB调试讲解
- (转载)GNU的调试器gdb快速入门
- GDB 调试命令讲解-转
- GDB 命令快速入门
- GDB快速入门
- GDB调试入门备忘
- GDB调试入门
- gdb 调试入门
- GDB调试入门
- GDB调试入门篇
- GDB调试程序入门
- gdb调试入门
- GDB调试工具入门
- GDB调试工具入门
- gdb调试简单入门
- GDB调试入门
- 【GDB调试学习笔记】GDB调试入门
- PostThreadMessage function (Windows)
- [Usaco2008 Mar]River Crossing渡河问题 简单DP
- Unity3D集成IAP的那点事儿
- 动态修改UINavigationBar背景
- 如何改变Linux文件的属性与权限
- gdb调试讲解,快速入门
- 别让你的IAP轻易被破解
- BoW用于图像检索的一般化流程
- PeekMessage function (Windows)
- Http方法:Get请求与Post请求的区别
- Hdu 3599 War
- struts常量
- webQQ获得群列表、好友列表
- 纯CSS实现侧边栏/分栏高度自动相等