欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > c/c++ >内容正文

c/c++

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

发布时间:2025/3/21 c/c++ 15 豆豆
生活随笔 收集整理的这篇文章主要介绍了 VC,Windbg,gdb执行到指定代码行方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

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

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

1.VC调试器的方法

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


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

2.Windbg方法

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

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


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

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


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

3.Linux gdb

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

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

总结

以上是生活随笔为你收集整理的VC,Windbg,gdb执行到指定代码行方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。