Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Neatbeans Debug, track changes to a variable

Posted on 2010-09-08
10
886 Views
Last Modified: 2013-12-14
I want to see a varaible change.  I right click and say 'add to watch' and only shows the current state it does not track its history of change?  Is there a debug tool that can do this and can work with NetBeans?
0
Comment
Question by:RichardSDetsch
10 Comments
 
LVL 65

Expert Comment

by:rockiroads
ID: 33632947
I have never come across a tool like that since the watch is usually to monitor the variable as you are stepping through code

why dont you try this, in the setter of that variable (assuming its a class variable), why dont you log the value being passed in.

0
 
LVL 65

Expert Comment

by:rockiroads
ID: 33632953
in case you are not familiar with the logger in Java like log4j. you do not have to worry about removing logging code then when app goes live.
0
 

Author Comment

by:RichardSDetsch
ID: 33633035
icecream flavs:
The variable is a private data member of a class of type double and my constructor sets it, but somehow by the time it gets to the classes toString method it gets changed to 0.0.   I am unfamiliar with this operation.   So if my class is below what would I do to log the value as being passed in its setter?

public class Class{
   private double trackVar;

   public Class(double trackVar){}

    public String toString(){print trackVar}

    public setTrackVar(double d){trackVar =d}
}

0
Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

 
LVL 65

Accepted Solution

by:
rockiroads earned 300 total points
ID: 33633065
add the logging in setTrackVar

public setTrackVar(double d) {
    LOG LINE HERE
    trackVar =d
}

if you are sure your constructor is setting it a value (which I assume is non zero) then something must be calling it. Tracing helps but you could put a breakpoint on the line trackVar = d then run your code in debug. Once it stops at that breakpoint you can check out the stack to see where it was called from
0
 

Author Comment

by:RichardSDetsch
ID: 33633078
I am very new to this.  I will try this when I go to work tomorrow.  Thanks so much.
0
 
LVL 65

Expert Comment

by:rockiroads
ID: 33633167
No problems.

If you dont want logging at this stage, just dump it using

System.out.println("Passed in value is " + d);

0
 
LVL 65

Expert Comment

by:rockiroads
ID: 33633170
if u got time, have a look at log4j. http://www.vipan.com/htdocs/log4jhelp.html
0
 
LVL 6

Expert Comment

by:__geof__
ID: 33634712
Can we get a look on your constructor and how it is called. It may be conversion problems i.e. if you try to set an int somewhere it won't do (like double = int/int doesn't work)
0
 
LVL 10

Assisted Solution

by:gordon_vt02
gordon_vt02 earned 200 total points
ID: 33636871
Check your constructor and make sure you are setting this.trackVar and not just trackVar.  The 0.0 value is the default for doubles so it sounds like it isn't actually getting set in your constructor.
public Constructor(double trackVar) {
    // BAD -- Sets trackVar parameter, not class attribute
    trackVar = trackVar;

    // GOOD -- Sets trackVar class attribute to value of parameter
    this.trackVar = trackVar;
}

Open in new window

0
 

Author Closing Comment

by:RichardSDetsch
ID: 33657442
These solutions are good practive.  Where you have a private variable that can only be acesses by setter functions.  But they do not track who called the setter and when.  
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
servlet  URL Rewriting 1 42
Why my table column Id is not passed to java object? 4 44
servlet example 17 51
Where are the c++ header files to use in Eclipse? 4 24
For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
By the end of 1980s, object oriented programming using languages like C++, Simula69 and ObjectPascal gained momentum. It looked like programmers finally found the perfect language. C++ successfully combined the object oriented principles of Simula w…
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question