使用call命令在GDB中重复调用某函数

在白盒测试中经常使用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
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值