码迷,mamicode.com
首页 > 数据库 > 详细

VC,Windbg,gdb执行到指定代码行方法

时间:2014-11-26 22:45:30      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:调试   vc   windbg   gdb   

在调试的时候,当执行到一段代码时,为了调试或者其他目的需要,有时候需要对一些或者几行代码多次执行或者跳过几行代码的执行,这是很有用的,比如下面的一个循环:

for(int i=0;i<num;i++)
{
//do something
}

也许num很大,但是我们又想看看前面几次循环执行的效果,这时候就需要前面提到的调试功能了,直接跳出循环,执行循环后面的代码。当然也可以跳到循环前面的代码执行,下面以对VC,Windbg和Linux的gdb三个调试器分别进行说明。

1.VC调试器的方法

VC对源代码级的调试支持得还是相当的好,特别是应用层代码的调试,而且执行到指定代码行的功能也是相当的简单,如下图所示。

bubuko.com,布布扣


将鼠标放在当前执行的代码行位置,这时会看到提示,说可以拖动箭头到想执行的代码行位置,然后就可以继续执行了。

2.Windbg方法

windbg可以用两种方法来达到这个目的。

第一种方法,如下图所示。

bubuko.com,布布扣


将焦点定位到你想执行的代码行,然后选择Edit菜单,选择“Set Current Instruction”子菜单即可,效果和VC一样。

第二种方法要麻烦一些,如下图所示。


bubuko.com,布布扣

可以通过修改eip的地址来达到执行指定代码行的功能,对x64位系统来讲,程序指针寄存器是rip,32位是eip,可以先执行r命令,查看寄存器的状态,如上图所示。然后切换到汇编模式,查看你想执行的那一行代码的地址,然后执行r rip=address命令来达到相同效果。

3.Linux gdb

gdb的功能很强大,要达到这个效果也很简单,如下图所示。

bubuko.com,布布扣

执行jump命令即可,如上图所示,想要到16行去执行,执行jump 16就可以了。

VC,Windbg,gdb执行到指定代码行方法

标签:调试   vc   windbg   gdb   

原文地址:http://blog.csdn.net/zhanghaiyang9999/article/details/41521651

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!