2

我正在开发基于 SWT 的 GUI 应用程序。我有一个私有的对象变量。此变量在应用程序运行时的某个时间变为空。我想知道如何设置看门狗类型的调试,以便我知道哪个线程使其为空。

4

3 回答 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,您可以设置一个断点进行访问和修改,这里是快速步骤:

  1. 关注私有变量的行。选择运行菜单 -> 切换断点。(如果您使用默认键映射,您可以按 Ctrl+Shift+B)
  2. Show Breakpoints View by Window menu -> Show View -> Other... Breakpoints
  3. 单击您切换的变量,右键单击并取消选中访问选项。只保留修改。
  4. 在调试模式下运行应用程序。

您应该能够看到变量的修改。

于 2012-08-18T17:22:28.420 回答