在Java中调试时,有没有办法检测ANY变量是否设置为给定值?

时间:2013-09-18 19:14:46

标签: java debugging variables

我有一个非常大的应用程序,它取一个值并让它在某个地方消失,我想知道它的去向。所以我正在寻找的是变量的值,所以我可以找出持有它的变量。我希望有某种技术,可能涉及类加载器或反射?

5 个答案:

答案 0 :(得分:1)

不要认为通过调试器有一种简单的方法,因为它允许您指定变量名称,而不是值名称:)

您应该能够获取类的句柄并迭代它们并遍历类中的每个字段,例如:java: get all variable names in a class

根据您所寻找的价值,您可能知道您正在寻找的类型,因此我建议您在进行检查之前添加一些类型检查。如果您有一个方法为您执行此操作,那么您可以构建一个包含结果的列表,然后您可以使用调试器轻松检查。

答案 1 :(得分:0)

如果您正在使用Eclipse或大多数IDE,您可以设置断点,并使用调试器逐步执行您的流程,并查看代码中每个变量值的含义。

如果您没有使用Eclipse或大多数IDE,可以考虑这样做,以便您可以使用调试功能。

答案 2 :(得分:0)

取决于您的IDE,但常见的(Eclipse,Netbeans,IntelliJ)允许您设置watches - 变量,您将在调试期间看到它们的值。此外,如果您设置断点 - 您可以将鼠标悬停在变量上,它将显示其值。

答案 3 :(得分:0)

您是否考虑过使用Eclipse等IDE?有一些非常好的调试功能,可以让你跟踪整个程序中的变量,并在程序暂停的代码中设置断点,你可以查看所有状态甚至更改它们。

答案 4 :(得分:0)

如果要在循环迭代期间捕获某个值,请使用If循环和值以编程方式捕获该值。

您可以使用一些拦截来标识最后设置该值的类。

你有任何例外吗?