This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 123204 - Log of call history desired.
Summary: Log of call history desired.
Status: NEW
Alias: None
Product: debugger
Classification: Unclassified
Component: Code (show other bugs)
Version: 5.x
Hardware: Sun All
: P3 blocker with 1 vote (vote)
Assignee: issues@debugger
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-12-01 19:40 UTC by gglazer
Modified: 2007-12-02 18:06 UTC (History)
1 user (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description gglazer 2007-12-01 19:40:45 UTC
Consider a run through the debugger, either step by step or all the way through.  At the end of the run, there will have
been from start to finish a trace through the codebase of which functions were called and with what arguments and from
which objects.  What this RFE calls for is a complete log of said history that can be viewed in its entirity, unlike the
history mechanism which shows details of each step. 

The format of the log does not need to be complicated and the suggestion is to use indention to describe the depth in
the stack:

   foo.main(...)
      getOpts(....)  //implictly a Foo method
      baz.fillMemoryWithZeroes(...)
          Exception(...)

etc.

Note that the term "log" should not indicate a preference for a particular UI, such as a file, rather it could be a tab
 or other display method.  In all cases, it should be copy-able from the UI.

At the next level of resolution, one could imagine a logger which not only maintained the call stack trace, but also
maintained each line of code visited:

   foo.main(...)
      foo$int x=0;
      foo$getOpts(...)
         foo$getOpts$Property props = new Property();
           :
         foo$getOpts$return props;
      foo$baz.fillMemoryWithZeroes(...)
         baz$fillMemoryWithZeroes$File zero = new File("/dev/zero");

 etc.

The choice of $ as a delimited is taken from the JVM respresentation in exceptions.  Other delimiters may provide
greater readability.

This feature should be easily turned on and off and if the high resolution method is used, easily switched from low to
high resolution and back.  This is because the extra logging may have significant performance impacts on lower end machines.

Lastly, the logging should be live in the sense that if one is doing the step by step debugging, one should be able to
watch the trace as it is building by having a tab open, tailing a log file, etc.


See also related issues at 

http://www.netbeans.org/issues/show_bug.cgi?id=93106
http://www.nabble.com/Constructive-Criticism-tf4329656.html#a12337332 (show hierarchy)