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:进入下一个断点

其他当然还有很多细节,即用即查

最新文章

  1. html中定义标签字母的大小写
  2. 基于jquery的图片轮播 (IE8以上)
  3. U盘操作系统,Kali Linux操作系统安装
  4. mysql 总结二(自定义存储过程)
  5. DIV与SPAN的区别
  6. iOS 利用CoreLocation和MapKit开发搜索附近的商场功能
  7. java split函数用法(转)
  8. 10.10_魔兽账号,OSC代码托管演示,研究SQL别忘记了,git
  9. Apache的httpd命令详解
  10. javascript中with语句应用
  11. jquery中validate插件表单验证
  12. 关于tableView的简单实例
  13. ASPxGridView-如何在客户端缓存数据
  14. 工作日志(DJ)
  15. JS-鼠标滚轮事件 和 阻止默认行为
  16. 一个“.java”文件中是否可以包含多个类(不是内部类)?有什么限制?
  17. javascript 中的console.log有什么作用啊?
  18. Linux学习历程——Centos 7 passwd命令
  19. 利用 python 实现对web服务器的目录探测
  20. POJ 2409 Let it Bead

热门文章

  1. Nancy 寄宿OWin
  2. layui简单例子
  3. 将Elasticsearch的快照备份到HDFS
  4. WPF多屏最大化
  5. [转] babel-plugin-react-css-modules配置
  6. 【BZOJ2698】染色
  7. java 防止xss攻击
  8. Kudu的集群安装(1.6.0-cdh5.14.0)
  9. 初窥Java之二
  10. react-antd 按需加载报错