我正在开发基于 SWT 的 GUI 应用程序。我有一个私有的对象变量。此变量在应用程序运行时的某个时间变为空。我想知道如何设置看门狗类型的调试,以便我知道哪个线程使其为空。
问问题
1721 次
3 回答
5
最简单且独立于 IDE 的方法是将变量封装在 setter / getter 对后面,并在代码中添加一条语句以监视设置值null
:
曾是:
public MyObject obj;
改成:
private MyObject obj;
public MyObject getObj() {
return obj;
}
public void setObj(MyObject val) {
if (val == null) {
// Add a log debug statement, and set a breakpoint here
}
obj = val;
}
封装你的变量通常是一件好事,通常证明在调试上下文之外也很有用。
于 2012-08-18T16:58:12.283 回答
0
1.我认为您在谈论Object Reference Variable
某种类型的对象。
在其 setter 方法中检查值。
例如:
CustomObject cObject;
public void setObject(CustomObject o){
if(o.equals(null)){
// Save it in log, Sysout it... etc.
}
else{
cObject = o;
}
}
于 2012-08-18T17:06:59.173 回答
0
我想您正在使用 Eclipse 来调试您的应用程序。
对于 Eclipse,您可以设置一个断点进行访问和修改,这里是快速步骤:
- 关注私有变量的行。选择运行菜单 -> 切换断点。(如果您使用默认键映射,您可以按 Ctrl+Shift+B)
- Show Breakpoints View by Window menu -> Show View -> Other... Breakpoints
- 单击您切换的变量,右键单击并取消选中访问选项。只保留修改。
- 在调试模式下运行应用程序。
您应该能够看到变量的修改。
于 2012-08-18T17:22:28.420 回答