是否可以知道源代码的哪些行被执行?

Ope*_*way 3 c code-coverage visual-studio

我正在使用Visual Studio调试C/C++代码.有一个循环被称为10000次并且在其中一个交互中,在循环结束时,有一个错误,因为程序试图访问长度为N的数组的N + 1值.我想回去调试错误的起源,我想知道在调试模式下,Visual Studio是否可以直观地突出显示或告诉我执行了哪些源代码行.然后更容易找到错误.有人知道这是否可行?

如果VS无法做到这一点,还有什么方法可以做到这一点?

谢谢

编辑:我也想知道是否可以使用任何其他IDE(Eclipse,Xcode,命令行等)完成此操作

Sri*_*yer 8

将一个条件断点放在数组访问发生的地方.这样你的程序就会在第N + 1次访问时中断,你将拥有完整的堆栈跟踪.

  • @Codo - Print语句是一个非常宝贵的调试工具,我非常精通VS调试器,Windbg并且在大学里使用了很多gdb,但我仍然多次使用print语句进行调试.奇怪的是,在阅读"Coders At Work"一书时(参见http://www.codersatwork.com/),业内许多"精英"都表示很多时候他们只是使用print语句进行调试. (2认同)

doo*_*urt 6

如果你知道你需要进行多少次迭代(在这种情况下为10,000),你肯定可以在n的循环上插入一个命中计数(错误之前的一个),然后使用Intellisense逐步完成下一次迭代关于可能导致问题的原因的信息?

替代文字

您有任何我们可以看到的代码可以帮助我们帮助您吗?


pm1*_*100 5

vs2010中的intellitrace可以做到这一点

http://msdn.microsoft.com/en-us/magazine/ee336126.aspx