首页 > 其他分享 >测试三-gdb测试

测试三-gdb测试

时间:2025-01-02 11:45:37浏览次数:6  
标签:设置 int 地址 gdb 测试 变量名 断点

测试三-gdb测试

用gcc -g编译附件代码

gcc -g testgdb.c -o testgdb
#使用gdb启动程序
gdb ./testgdb

在main函数中设置一个行断点

(gdb) break 5

修改循环次数为自己学号后4位,设置一个约为学号一半的条件断点

#include <stdio.h>

int sum(int m);

int main()
{
    int *pi;
    int i, n = 0;
    pi = &i;
    int arr[3] = { 10, 20, 30 };
    pi = arr;
    sum(50);
    for (i = 0; i <= 2826; i++) {
	    n += i;
    }

    printf("The sum of 1-2826 is %d \n", n);
}

int sum(int m)
{
    int i, n = 0;
    for (i = 1; i <= m; i++) {
	    n += i;
    }

    printf("The sum of 1-50 is %d \n", n);

    return n;
}
#条件断点,当i等于1413时在14行中止
(gdb) break 14 if i==1413

设置断点

#运行
(gdb) r
#继续运行
(gdb) continue
#清除所有断点
(gdb) delete
#清除断点1
(gdb) delete 1
#展示变量
(gdb) display 变量名
#退出gdb模式(快捷键)
ctrl+d/q

其他类型断点

数据断点

根据地址来进行设置断点,只能是在debug程序运行之后设置,因为只有运行后,你才能很方便地获知变量的地址。当该地址上的内容发生改变时就会触发断点。
设置数据断点有两种方式,一种是直接指出地址值,如:

(gdb) b *0x400522

注意必须加*号。而获取地址值的方法是,先设置普通断点,在断点处print &变量名 就能获取该变量的地址。
另一种是直接设置变量名了,如:

(gdb) b &变量名

函数断点

这种断点是当程序执行到某个程序时就会触发断点。设置方式如:

(gdb) b funcName

监视

监视必须是在程序运行后才行。如:

(gdb) watch *地址    # 当地址所指内容发送变化时断点
(gdb) watch var    #当var值变化时,断点
(gdb) watch (condition)    #当条件符合时,断点

标签:设置,int,地址,gdb,测试,变量名,断点
From: https://www.cnblogs.com/Arisf/p/18647300

相关文章

  • 分享几个好用的电商API接口(可测试)
    以下是一些好用的电商API接口,涵盖了商品、订单、支付、用户等多个方面:获取APIKEY测试一、商品相关API接口商品详情接口功能:根据商品ID查询商品的详细信息,包括SKU信息、详情主图、库存、销量等。示例接口名:item_get。应用平台:1688、淘宝等。商品搜索接口功能:根据用户输......
  • 什么是测试金字塔?
    测试金字塔是一种在软件开发中,特别是前端开发领域里,常用的测试策略。它主要将测试分为三个层次,构成了一个金字塔形状的结构,每一层都有其特定的测试目标和重要性。以下是关于测试金字塔的详细解释:一、测试金字塔的构成单元测试(UnitTests):位于测试金字塔的最底层,也是整个测试体......
  • iOS 覆盖率检测原理与增量代码测试覆盖率工具实现1
     背景对苹果开发者而言,由于平台审核周期较长,客户端代码导致的线上问题影响时间往往比较久。如果在开发、测试阶段能够提前暴露问题,就有助于避免线上事故的发生。代码覆盖率检测正是帮助开发、测试同学提前发现问题,保证代码质量的好帮手。对于开发者而言,代码覆盖率可以反馈两......
  • 软件安全测试
    一、网络协议基础1、网络模型我们把一些过程封装到一起,称为“模型”,如下:把北京中的4个步骤封装到一起,就是1个模型了。 (1)网络模型-OSIOSl(OpenSystemInterconnection开放系统互联)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为OS......
  • 《Burp Suite:Web安全测试的全能利器》
    burp激活BurpSuite是一款功能强大的Web应用程序安全测试工具,它集成了多个模块,用于拦截、分析和修改HTTP/HTTPS流量,帮助安全专家识别和修复潜在的安全漏洞。软件版本说明1、如果是初次下载,建议统一使用本文介绍中的版本。2、因为新版的Burp要求的JDK版本较高,有可能......
  • 14_业务分析介绍&15_Python报表自动化&18_AB测试实战&19_用户偏好分析和TGI&20_同期群
    文章目录14_业务分析介绍业务分析介绍学习目标1数据指标简介1.1什么是数据指标1.2常用的业务指标1.3如何选择指标2电商业务指标3电商分析方法论及应用黄金公式GROWAIPL抖音5A与京东4A3通过数据分析解决的业务问题(了解)行业趋势分析竞......
  • CH32V203F6P6-TSSOP20测试之02
    一、问题思考直接用官方提供的例程,为何下载程序后没有什么响应,难道自己设计的电路有什么不妥?于是,对于电路进行具体分析,结果发现:第一、官方的BOOT0采用杜邦线连接,在芯片手册好像找不到关于BOOT0的叙述,仅仅在《CH32V20x评估板说明书》中看到:也就是说,这芯片要烧录时BOOT0必须接V......
  • Linux服务器上shell脚本批量循环测试接口连通性,bash工具循环测试curl性能
    使用curl的-w选项来输出各种时间信息-o/dev/null用于丢弃响应体,只关心头部信息-s用于静默模式,不输出进度信息%{http_code}输出HTTP状态码%{time_namelookup}输出DNS解析时间%{time_connect}输出连接时间%{time_total}输出总时间(包括响应时间)结合shell脚本的循环执......
  • HackMyVM-Adria靶机的测试报告
    目录一、测试环境1、系统环境2、使用工具/软件二、测试目的三、操作过程1、信息搜集2、Getshell3、提权四、结论一、测试环境1、系统环境渗透机:kali2021.1(192.168.101.127)靶 机:debian/linux(192.168.101.226)注意事项:该类型靶场只能在virtualBox上搭建,因......
  • 做软件测试,28岁失业了,转行做什么好呢?零基础入门到精通,收藏这篇就够了
    如今做软件测试失业已经不是什么新鲜事了,失业并不可怕,最可怕的是失业后不知道要干嘛。见过太多人,害怕失业,但又恐惧失业后自己能做什么?计算机热门就业方向从目前市场情况来讲,网络安全的就业前景是非常不错的,2022年的统计数据,网络安全专业的缺口已经增长到140万人。1、就......