变量更改时通过调试进行错误跟踪

时间:2014-09-14 01:59:37

标签: c# debugging

我是编程的初学者,并且很难跟踪错误,这种情况发生的原因通常是将变量放在手表上,并且在我注意到某些变化之前一直按f5。我在视觉c#2010上,我有18000行代码,所以只有运气好我才能解决问题。

当变量发生变化时,有没有办法立即转到代码行?

4 个答案:

答案 0 :(得分:4)

您可以将变量更改为property并在设置器上放置断点。然后,您可以拥有一个断点,每次一段代码更改其值时都会遇到这个断点。

所以如果你有:

int myVariable;

将其更改为:

int myVariable {
   get;
   set; // <-- Put your breakpoint here
}

答案 1 :(得分:4)

这听起来像是一个设计问题。理想情况下,您应该将变量的位置限制为代码中非常具体的位置。这是避免全局变量和静态变量的一个原因,除非您有充分的理由使用它们。即使这样,您也应该将访问器方法定义为这些变量的接口,而不是直接更改它们。

在调试代码时,我建议您寻找可以改进代码的方法,以便将来调试不那么困难。

答案 2 :(得分:1)

您可以拥有条件断点,只有在满足条件时才会触发。

所以,假设你有一个索引变量indx,你可以设置一个条件断点,说只在值= 7 时停止,然后当你'时它会停在那里'重新改变条件...

看看这个msdn page
在这个youtube教程中。

答案 3 :(得分:1)

在本机代码中,最好的办法是设置数据断点。无论更改来自何处,数据更改时都会触发数据断点。

然而,你无法为.NET做到这一点。当变量的值发生变化时,您无法要求调试器中断。但是,并非所有希望都失去了。对相关变量执行“查找用法”或“查找引用”,以查找代码中使用该变量的所有位置。然后在每个位置设置一个断点,以查看变量值何时发生变化。