下面是我自己写的一个测试用例 a.c

#include<stdio.h>
int add(int a,int b){
return a+b;
}
int main(){
int n=add(5,10);
printf("n is %d\n",n);
n=n*n;
printf("n is %d\n",n);
n=add(10,10);
printf("n is %d\n",n);
return 0;}

gdb调试过程

gcc -g a.c -o result //如果想使用gdb调试,那么必须加入-g选项

gdb result 进入gdb调试

l (字母l)显示源码,如果没显示完,按回车继续显示剩下的

b 7 在第七行设置断点

r 运行程序,会在断点那里停下来

p n 显示变量n的值

n 执行下一行

b 9 在第九行再次创建断点,9也可以改为函数名main

condition 2 n==255 检测n的值为255时暂停运行

c 从断点处继续运行

cl 9 清除第九行断点

s 单步调试,执行到下一断点

高级命令

高级命令

gdb还有很多高级用法,如查看堆栈列表,分割窗口等,这里就不一一测试了。

查询运行信息

where/bt:查看当前运行的堆栈列表
up/down:改变堆栈显示的深度
set args:参数:指定运行时的参数
show args:查看设置好的参数
info program: 来查看程序的是否在运行,进程号,被暂停的原因。

分割窗口

layout:用于分割窗口,可以一边查看代码,一边测试
layout src:显示源代码窗口
layout asm:显示反汇编窗口
layout regs:显示源代码/反汇编和CPU寄存器窗口
layout split:显示源代码和反汇编窗口
Ctrl + L:刷新窗口

gdb入门的更多相关文章

  1. GDB 入门篇

    调试流程:(使用gcc编译时加上 -g -Wall选项)gdb attach pidinfo bb filename:linenum / b filename:functionnamecp varia ...

  2. 较详细的gdb入门教程

    本文主要介绍gdb的基础使用.若需了解一些技巧,请访问此篇博客:点这里 本篇教程适用于Windows,macOS及Linux,但由于Windows的自带终端很难用,所以体验可能不太好.Windows ...

  3. 新手如何在gdb中存活

    网络上已经有很多gdb调试的文章了,为什么我还要写这篇文章呢,因为本文是写给gdb新手的,目的就是通过一个简单的例子来让新手很快上手.一旦上手入门了,其他的问题就可以自己去搜索搞定了.右边是gdb的L ...

  4. 汇编入门基础与helloworld

    一个存储器拥有128个存储单元,可存储128个byte(字节),一个bite则又是由8个二进制位即bit(比特)组成,bit是计算机的最小信息单位. 总线分为地址总线,控制总线,数据总线 一个cpu有 ...

  5. 推荐一些不错的计算机书籍(php c mysql linux等等)

    推荐一些不错的计算机书籍. # PHP<PHP程序设计>(第2版)  --PHP语法和入门最好的书<PHP5权威编程>  --PHP入门后升级书<深入PHP:面向对象.模 ...

  6. 一个很不错的适合PHPER们书单,推荐给大家【转】

    来我博客的访客们中,有一些是PHP的初学者,是不是很迷茫PHP应该怎么学?应该买什么样的书?到处问人,到处求助?这下好了. 正好看到黑夜路人在博客上推荐了一个书单,看上去都非常不错,很多我也没有读过, ...

  7. 一个PHP书单 -摘自网络

    # PHP <PHP程序设计>(第2版) –PHP语法和入门最好的书 <PHP5权威编程> –PHP入门后升级书 <深入PHP:面向对象.模式与实践>(第3版) – ...

  8. PHP学习必读的20本书

    PHP相关<PHP程序设计>(第2版) –PHP语法和入门最好的书<PHP5权威编程> –PHP入门后升级书<深入PHP:面向对象.模式与实践>(第3版) –理解P ...

  9. php有关数据推荐

    # PHP<PHP程序设计>(第2版)  --PHP语法和入门最好的书<PHP5权威编程>  --PHP入门后升级书<深入PHP:面向对象.模式与实践>(第3版) ...

随机推荐

  1. Docker安装websphere(四)

    在Docker容器里安装webshpere <!--前提:已经安装好了docker,能够正常使用.--> (1)docker安装websphere(需要账号和密码登录,不挂载数据卷) 获取 ...

  2. TensorFlow学习笔记——节点(constant、placeholder、Variable)

    一. constant(常量) constant是TensorFlow的常量节点,通过constant方法创建,其是计算图(Computational Graph)中的起始节点,是传入数据. 创建方式 ...

  3. PC/FORTH 循环

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  4. 依赖倒置(DIP)、控制反转(IOC)和依赖注入(DI)

    原文: https://blog.csdn.net/briblue/article/details/75093382 写这篇文章的原因是这两天在编写关于 Dagger2 主题的博文时,花了大量的精力来 ...

  5. 深入理解java虚拟机---Class文件(二十)

    无符号数.表 当实现了不同语言的编译器,比如jython,jruby等等,那么就可以利用这些语言编写代码,通过各自的编译器编译成符合jvm规范的字节码文件,就可以利用jvm来执行了. Class文件在 ...

  6. 深入理解java虚拟机---对象的结构(九)

    注意: 我们可以看到的就是InstanceData的数据. 先转载一篇文章作为开头,因为讲的非常详细,我就简单加工下放到这里: 对象结构 在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区 ...

  7. 201621123001 《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰 ...

  8. 点击图片或者鼠标放上hover .图片变大. 1)可以使用css中的transition, transform 2) 预先设置一个 弹出div. 3)弹出层 alert ; 4) 浏览器的宽度document.documentElement.clientWidth || document.body.clientWidth

    变大: 方法一: 利用css属性. 鼠标放上 hover放大几倍. .kecheng_02_cell_content img { /*width: 100px; height: 133px;*/ wi ...

  9. Pandas分组统计函数:groupby、pivot_table及crosstab

    利用python的pandas库进行数据分组分析十分便捷,其中应用最多的方法包括:groupby.pivot_table及crosstab,以下分别进行介绍. 0.样例数据 df = DataFram ...

  10. java学习笔记18(基本类型包装类,system类)

    基本类型包装类 定义:程序界面用户输入的数据都是以字符串类型存储的,如果需要操作这些字符串进行运算,需要转成基本数据类型,这时就要用到基本类型包装类,例: public class Demo { pu ...