Makefile (2) gdb
gdb调试
1.用debug的方式编译
-g
2.打上断点
3.单步调试
step into 进入函数里面
step over 运行整个函数
step return 跳出当前函数
4.继续运行
5.打印和监控值
下面是栗子:
#include <stdlib.h>
#include <stdio.h>
static int add(int i) //创建一个函数,循环10次,将传进来的数每次+1
{ for(int k=;k<;k++)
{
i += ;
}
return i;
}
int main(int argc, char const *argv[])
{
int ret;
ret = add(); //调用函数
printf("%d\n",ret);
return ;
}
(1) 编译的时候,带调试编译
gcc test.c -g -o a.out
(2) 用gdb运行
gdb a.out
(3) 打断点
>>1.查看源码
l(ist)
>>2.打断点
b(reak) 函数名
b(reak) 行号
b(reak) 文件名:行号
b(reak) 行号 if条件
>>3.查看断点
info break(i b)
>>4.删除断点
d(elete)
-----------------------------------------------
//1.先用 l 看源码


//2.打断点
//b 7 在第7行打断点
//b add 在函数add打断点
//3.查看断点 i b


//4.删除断点 d <断点号>
(4) 调试
.r(un) 调试
.c(ontinue) 继续
.q(uit) 退出
.n(ext) --step next
.s(tep) --step into
.f(inish) --退出当前函数
.c(ontinue) --把剩下的执行完
(5) 打印值和监控值
. w(atch) x 监控x变量
. p(rint) x 把x值打印出来
(6) 神奇的wi --输入wi


Makefile (2) gdb的更多相关文章
- makefile、gdb使用记录
makefile的模板 all: rover server station rover: rover.c tcputil.o gcc rover.c tcputil.o -o rover -lpthr ...
- 使用VS GDB扩充套件在VS上远端侦错Linux上的C/C++程序
在 Linux 上开发 C/C++ 程序,或许你会直接(本机或远端)登入 Linux,打开编辑器写完代码后,就用 gcc/g++ 来编译,遇到要除错(debug)的时候,则会选择使用 gdb 来进行除 ...
- 好文章!转载嵌入式LINUX
整理了嵌入式linux学习路线供参考,希望对您有所参考价值! 一.linux入门 目前嵌入式主要开发环境有 Linux.Wince等:Linux因其开源.开发操作便利而被广泛采用.而Linux操作系统 ...
- DevOps技能自查表
前篇提到了DevOps的工作岗位要求,但是没有来的及深入细节,本文根据个人10年多的经验,尽量详细地列举DevOps所需要用到的一些技术和相关参考网站. Linux基础 Linux系统的基本概念: 必 ...
- GCC,GDB,Makefile和IO复用函数
2015.1.22 c高级的环境搭建:GCC编译器:全称 GNU CC,是GNU工具(tool chain)的一种,源码编译成机器码,gcc的编译依赖于很多小工具4.3.3和3.4.3版本的比较稳定 ...
- gcc编译, gdb调试, makefile写法
//test.c: #include <stdio.h> int main(void) { printf("hello world!"); return 0; } == ...
- GCC、GDB、Makefile
1.GCC程序编译 Linux系统下的gcc(GNUCCompiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作之一.gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一 ...
- 03-Linux命令基础-第03天(makefile、静态库、动态库、gdb调试工具)
01- 复习 tar tvf xxx 查看压缩包内容 区分前后台: 是否能和用户交互 Vmware选桥接模式 会给系统虚拟一个和外部相同网段的ip 02- vim扩展操作 因为不是做嵌入式开发的 所以 ...
- [00]APUE:GCC / GDB / Makefile
http://blog.csdn.net/haoel/article/category/9197 http://blog.csdn.net/haoel/article/details/2886 生成 ...
随机推荐
- mysql常用的优化措施
http://www.cnblogs.com/ggjucheng/archive/2012/11/07/2758058.html
- [持续更新] Linux基础的重要命令
命令总结:100个左右 mkdir 方法一 [root@localhost ~]# mkdir /test && ls -ld /test 方法二 [root@localhost ~] ...
- 测试驱动开发(TDD)及测试框架Mocha.js入门学习
组里马上要转变开发模式,由传统的开发模式(Developer开发,QA测试),转变为尝试TDD(Test-driven development,测试驱动开发)的开发模型.由此将不存在QA的角色,或者仅 ...
- js报错 object is not a function
主要是js函数名重名了,重命名就可以了.
- 关于form的action路径填写
一:可以是相对路径: 1.action="<%=request.getContextPath() %>/html/index.html" <%=request. ...
- selenium Element not found in the cache - perhaps the page has changed since it was looked up接解决
selenium Element not found in the cache - perhaps the page has changed since it was looked up.这个问题爆出 ...
- 监控系统-nagios
https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/ install yum -y install nagios-4 ...
- org.springframework.beans.factory.BeanNotOfRequiredTypeException
写一个代码:关于Spring Bean的装配.基于annotation实现的范例代码. 出现了错误: 十一月 14, 2018 4:51:01 下午 org.springframework.conte ...
- 利用PCHunter结束各种进程
http://www.epoolsoft.com/ 经测试,可结束主动防御等.
- Objectbox Box的getAll() 函数返回emptylist() 未判断导致崩溃
最近使用了Objectbox作为新项目的数据库后台,Greendao开发团队新力作,但是Objectbox算是比较新的一个东西,现在资料也不多. 今天跟大家分享一个关于Box类的getAll()函数的 ...
//b add 在函数add打断点