1-2 编程基础 GDB程序调试
简介
GDB是GNU发布的一款功能强大的程序调试工具。GDB主要完成下面三个方面的功能:
1.启动被调试程序
2.让被调试的程序在指定的位置停住。
3.当程序被停住时,可以检查程序状态(如变量值)。
GDB快速进阶
1.编译生成可执行文件:
gcc -g tst.c -o tst
2.启动GDB
gdb tst
3.在main函数处设置断点
break main
4.运行程序
run
5.单步运行
next
6.继续运行
continue (连续运行 输入 c)
启动GDB
1.gdb 调试程序名
例: gdb helloworld
2.gdb
file 调试程序名
GDB命令
list(1) 查看程序
break(b) 函数名 在某函数入口处添加断点
break(b) 行号 在指定行添加断点
break(b) 文件名:行号 在指定文件的指定行添加断点
break(b) 行号 if条件 当调价为真时,执行那个行号处断点生效,例b 5 if i=10,当i等于10时第5行断点生效
info break 查看所有设置的断点
delete 断点编号 删除断点
run(r) 开始运行程序
next(n) 单步运行程序(不进入子函数)
next(n) 单步运行程序(进入子函数)
continue(c) 继续运行程序
print 变量名 查看指定变量值
finish 运行程序,直到当前函数结束
watch 变量名 对指定变量进行监控
quit 退出gdb
1-2 编程基础 GDB程序调试的更多相关文章
- 1、GDB程序调试
GDB是GNU开源组织发布的一个强大的Linux下的程序调试工具.一般来说GDB主要完成下面四个部分的功能. 1)启动你的程序,可以按照你的自定义的要求运行程序. 2)可让被调试程序在你所指定的调试的 ...
- Linux gcc和gdb程序调试用法 {转}
gcc一般调试格式: gcc -Wall -o test test.c // -wall 显示程序错误详细信息 gcc -v // 显示gcc的版本 gcc -o{1,2,3} t ...
- Linux编程基础——GDB(设置断点)(转:TianFang,cnblog: http://www.cnblogs.com/TianFang/archive/2013/01/20/2868889.html)
启动GDB后,首先就是要设置断点,程序中断后才能调试.在gdb中,断点通常有三种形式: 断点(BreakPoint): 在代码的指定位置中断,这个是我们用得最多的一种.设置断点的命令是break,它通 ...
- Linux编程基础——GDB(设置断点)
启动GDB后,首先就是要设置断点,程序中断后才能调试.在gdb中,断点通常有三种形式: 断点(BreakPoint): 在代码的指定位置中断,这个是我们用得最多的一种.设置断点的命令是break,它通 ...
- GDB 程序调试简单实践
用了好久的GCC/G++ 却一直都没用过GDB调试过程序,有时程序不是非常大,一般有错,直接看编译器编译结果就几乎相同知道错在哪儿了,或者使用codeblocks单步调试,甚至回到windows以下调 ...
- gdb,程序调试助手
启动GDB:(其中我的app是编译之后的可执行文件) 退出命令:quit或者简写q 帮助获取: gdb通过完备的在线帮助,使我们使用起来更加方便.所有的帮助信息都是通过help命令获得的,运行help ...
- 【Linux】GDB程序调试
一.GDB简介 GDB是GNU发布的一款功能强大的程序调试工具.GDB主要完成下面三个方面的功能: 启动被调试程序. 让被调试的程序在指定的位置停住. 当程序被停住时,可以检查程序状态(如变量值) 二 ...
- 1-1 编程基础 GCC程序编译
GCC简介 Linux系统下的gcc是GNU推出的强大.性能优越的多平台编译器,是GNU的代表作之一.gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平局效率要高20 ...
- GDB程序调试
GDB使用流程 1.编译生成可执行文件: gcc -g tst.c -o tst2.启动GDB gdb tst3. 在main 函数处设置断点 break main4. 运行程序 run GDB 命令 ...
随机推荐
- 【前端】CentOS 7 系列教程之一: 安装 node 最新版
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/linux_1.html 此系列教程从零开始,安装node.mysql.git,nginx.并且设置git自动部署. ...
- 【旧文章搬运】《从PEB获取内存中模块列表》的补充
原文发表于百度空间,2008-7-26========================================================================== 继续研究PE ...
- sharepoint服务器修改密码后出现HTTP Error 503
HTTP Error 503 解决办法: 更改sharepoint 网站应用程序池标示后,更改标示重新输入管理员密码,问题解决!
- Programming With Objective-C---- Encapsulating Data ---- Objective-C 学习(三) 封装数据
Programming with Objective-C Encapsulating Data In addition to the messaging behavior covered in t ...
- 010-- 开发脚本自动部署nginx_web和nfs及监控内存
1.编写脚本自动部署反向代理.web.nfs: #!/bin/bash #检测安装nginx function detection_nginx(){ if [ -f /etc/nginx/nginx. ...
- Mysql数据库实现高可用
Mysql实现高可用 MMM MMM(master-master replication manager for mysql)mysql主主复制管理器. MMM是一套灵活的脚本程序,基于perl实现, ...
- 任务37:生成 JWT Token
实现给用户办法token 默认是可以访问valuesController的,返回的状态是200 http://localhost:5429/api/values 返回的状态码是200 把ValuesC ...
- 看鸟哥的Linux私房菜的一些命令自我总结(一)
-显示目前所支持的语言 echo &LANG -修改语言成为英文系统 LANG=en_US -显示日历的命令 cal [[month] year] -惯用关机命令 shutdown 参数: ...
- 51nod1014【暴力】
直接暴力1e6就好了 #include <bits/stdc++.h> using namespace std; typedef long long LL; int main() { LL ...
- Codeforces Round #355 (Div. 2) B. Vanya and Food Processor
菜菜菜!!!这么撒比的模拟题,听厂长在一边比比比了半天,自己想一想,然后纯模拟一下,中间过程检测一下,妥妥的就可以过. 题意:有N个东西要去搞碎,每个东西有一个高度,然后有一台机器支持里面可以达到的最 ...