Bug 6637 - fstack eats an NPE backtrace
Summary: fstack eats an NPE backtrace
Alias: None
Product: frysk
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Andrew Cagney
Depends on:
Reported: 2008-06-12 14:54 UTC by Andrew Cagney
Modified: 2008-06-12 20:34 UTC (History)
0 users

See Also:
Last reconfirmed:


Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Cagney 2008-06-12 14:54:28 UTC
When a serious problem occures, such as an NPE, the stack backtrace should be
included, for instance:

Error: java.lang.NullPointerException

is too terse.
Comment 1 Andrew Cagney 2008-06-12 17:44:25 UTC
commit 531115f2541df6ed1e8a8f16e24c519fb858b209
Author: Andrew Cagney <cagney@toil.yyz.redhat.com>
Date:   Thu Jun 12 13:28:25 2008 -0400

    Provide parent for user and internal exceptions; try.
    This adds two root exceptions (they both extend RuntimeException):
    (I toyed with the name ExternalException also, and better suggestions
    welcome).  This corresponds to an error problem caused by user
    provided information and hence is likely going to be displayed as an
    informational message to the user.  For instance, the user provided
    invalid input from the console; or a user supplied file is in some way
    invalid, or even a data being read from the target's memory (such as a
    table) is found to be invalid.  The key thing is that something
    exceptional has occured that is external to frysk's control.
    This corresponds to a problem in frysk's code base.  For instance,
    missing or unimplemented code, or a programming error.  Java
    exceptions such as ArrayIndexOutOfBounds can also be considered to
    fall into this category.  If such an exception bubbles up to user
    level, it will likely want to be displayed as a backtrace.
fexe 7208
Exception in thread "main" java.lang.NullPointerException
   at java.io.File.normalizePath(libgcj.so.8rh)
   at java.io.File.<init>(libgcj.so.8rh)
   at frysk.proc.live.LinuxPtraceProc.getExeFile(fexe)
   at frysk.bindir.fexe$PrintExeEvent.executeLive(fexe)
   at frysk.util.ProcStopUtil$UtilEvent.execute(fexe)
   at frysk.event.EventLoop.runEventLoop(fexe)
   at frysk.event.EventLoop.run(fexe)
   at frysk.util.ProcStopUtil$1.parsePids(fexe)
   at frysk.util.CommandlineParser.doParse(fexe)
   at frysk.util.CommandlineParser.parse(fexe)
   at frysk.util.ProcStopUtil.execute(fexe)
   at frysk.bindir.fexe.main(fexe)