在白盒测试中经常使用GDB进行函数的分支覆盖测试,但在测试对象函数触发很困难,测试效率就很低下。

假设测试函数fun1有10条分支。每次进入fun1需设置10个变量。

那么一般情况下要在GDB中操作10 * 10 = 100次才能将该分支覆盖完毕。

经过查找,GDB中存在一种方法,重复调用该函数,使用10+10 =20次即可覆盖分支。

GDB使用步骤:

1)首先对该函数打断点

有以下函数:

int webprc_cmmenu_lchk(WEB_CMMENU_LAN_PATH_CHK_STATUS *result, int filetype,CM_COMMON_INFO *cominf, WEB_FLAG_TYPE type, char *errmsg)

2)第一次,手动进入该函数

GDB将显示以下msg:

Breakpoint 2, webprc_cmmenu_lchk (result=0x1006cc8c, filetype=60, cominf=0x48197008, type=0 '\000',errmsg=0x10087f30 "\302\302\302\302\302\302"...) at webcmmenu.c:212
212         webprc_lock(WEB_SEM_LOCK);
(gdb) n
213         result->status.status.size = sizeof(WEB_CMMENU_LAN_PATH_CHK_S

使用call命令在GDB中重复调用某函数相关推荐

  1. C语言中连续调用rand函数,返回值不变

    C语言中连续调用rand函数,返回值不变 最近用C语言随机函数编程发现了一个奇怪的现象: 简易版代码: #include<stdio.h> #include<stdlib.h> ...

  2. matlab 中调用s函数表达式,[求助]S函数中能否调用M函数

    [求助]S函数中能否调用M函数 我现在写了一个S-FUNCTION 里面调用了一些M函数,当把S函数的名字写入S-FUNCTION块的时候 总是出现 ??? SWITCH expression mus ...

  3. linux 下的动态库制作 以及在python 中如何调用 c 函数库

    linux 下的动态库制作 以及在python 中如何调用 c 函数库 动态库: 动态库又称动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序 ...

  4. C++中怎么调用C函数

    关于"C++中怎么调用C函数"的方法,之前有浏览过大牛的文章,貌似有好几种方法. 作为小白,this is my way. /* File: parse.h* Purpose: s ...

  5. 创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。​ 要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算

    //创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3.//要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算public static int max3 ...

  6. java如何调用linux命令_java程序中如何调用linux命令

    java程序中如何调用linux命令 作为一个Java开发人员,有些常用的Linux命令必须掌握.即时平时开发过程中不使用Linux(Unix)或者mac系统,也需要熟练掌握Linux命令.因为很多服 ...

  7. linux怎么重复命令,Linux系统中重复执行历史命令的方法有哪些?

    今天小编要跟大家分享的文章是关于Linux系统中重复执行历史命令的方法有哪些?各位正在从事Linux运维工作的小伙伴们,如果要执行一条或多条之前输过的指令,要怎么处理?很多人会想到使用上下箭头去翻查历 ...

  8. java中如何调用c_java中如何调用c函数

    先介绍一下jni:Java Native Interface,它能够使java和其他编程语言编写的应用程序和库进行相互操作. java中调用c函数,主要是通过本地化接口jni来实现的,在windows ...

  9. keil5函数 默认返回值_Python中如何调用random()函数

    在开始了解之前,我们需要知道random()函数是需要导入模板,才可以进行访问,然后通过调用静态对象来使用这个方法,另外返回生成的随机实数,是有一定的范围.下面正式开始主题介绍: 先给大家带来一列实例 ...

最新文章

  1. iphone微信美颜插件_Cydia插件推荐
  2. w10安装ubuntu_Win10 + Ubuntu 16.04双系统完美安装教程【详细】
  3. getRequestDispatcher()与sendRedirect()的区别
  4. [css] 怎么给手持设备添加特殊样式?
  5. js三元判断html,JS 三元条件运算符
  6. 2 QM配置-质量计划配置-编辑特性属性的代码组和代码
  7. 使用函数自调用实现将局部变量转换成全局变量
  8. Matlab 【应用】【1】用Matlab找一组模拟波形的极值(含极大值、极小值、最大值)并在图中画出来
  9. shell 登录mysql 然后quit_MySQL 数据库简单操作
  10. 我们应该改变Linux的二十四件事
  11. Nginx+PHP+MySQL+Ubuntu14.04 64位环境搭建
  12. Java学习代码合集
  13. java字节码查看器_jclasslib 下载
  14. 【华为OD机试真题 JS】事件推送
  15. sdk manger
  16. 最好PDF软件汇总070623
  17. android saf 打开指定目录,并操作相关文件
  18. 集美大学计算机工程学院学业预警,学业预警
  19. 华为linux改ip地址,ubuntu9.10校园网上网配置详细教程(华为h3c,mac地址绑定)
  20. Lotus Notes中文档查询(转)

热门文章

  1. windows下实现node版本的切换
  2. 混沌数学及其软件模拟
  3. 山东大学-科技文献阅读与翻译-笔记
  4. 【工具】2020.10全国省市区三级联动行政区划码Mysql数据,带电话区号,邮编,拼音,简称,经纬度,城市等级
  5. 好文回顾:中国游戏编年史 中国游戏的二十年(4)
  6. 数据中心Data Center——学习与理解
  7. RadioButton 状态选择器
  8. node爬虫最简单的demo
  9. 来瞧瞧金砖大会的“护花使者”吧!
  10. 网格社区志愿者服务小程序开发方案图文详解