GDB快速入门
2024-08-23 01:54:08
GDB快速入门
GDB(GNU DeBugger)是Linux下强大的C/C++调试器,纯命令行操作
启动
以下为测试代码
#include <stdio.h>
int nGlobalVar = 0;
int tempFunction(int a, int b)
{
printf("tempFunction is called, a = %d, b = %d\n", a, b);
return (a + b);
}
int main()
{
int n;
n = 1;
n++;
n--;
nGlobalVar += 100;
nGlobalVar -= 12;
printf("n = %d, nGlobalVar = %d\n", n, nGlobalVar);
n = tempFunction(1, 2);
printf("n = %d", n);
return 0;
}
启动调试
$gcc -g hello.c -o hello #-g表示生成符号表和调试信息等
$gdb -q hello #-q表示禁止显示介绍信息和版权
常用指令
- file hello:要装入调试的可执行文件
- cd dir:改变工作目录
- pwd:返回当前目录
- run:执行正在被调试的程序
- kill:停止当前正在调试的程序
- list:列出正在调试的应用程序源码
- break 行号:在某一行设置断点
- tbreak:temporary breakpoints只运行一次的断点
- watch var:监控变量
- next:step over
- step:step into
- display var:每一次运行都会显示变量
- undisplay varNum:删除display的变量
- print expr:显示一次表达式的值
- delete breakNum:删除指定断点,如果不加参数就删除所有
- shell cmd:执行Linux shell命令
- make:不退出gdb重新编译
- quit:退出gdb
- info breakpoints:查看断点
- info func:显示所有函数名
- info local:显示当前函数的所有局部变量
- help:查看帮助
- continue:进入下一个断点
其他当然还有很多细节,即用即查
最新文章
- html中定义标签字母的大小写
- 基于jquery的图片轮播 (IE8以上)
- U盘操作系统,Kali Linux操作系统安装
- mysql 总结二(自定义存储过程)
- DIV与SPAN的区别
- iOS 利用CoreLocation和MapKit开发搜索附近的商场功能
- java split函数用法(转)
- 10.10_魔兽账号,OSC代码托管演示,研究SQL别忘记了,git
- Apache的httpd命令详解
- javascript中with语句应用
- jquery中validate插件表单验证
- 关于tableView的简单实例
- ASPxGridView-如何在客户端缓存数据
- 工作日志(DJ)
- JS-鼠标滚轮事件 和 阻止默认行为
- 一个“.java”文件中是否可以包含多个类(不是内部类)?有什么限制?
- javascript 中的console.log有什么作用啊?
- Linux学习历程——Centos 7 passwd命令
- 利用 python 实现对web服务器的目录探测
- POJ 2409 Let it Bead