For instance: (fhpd) load /home/mark/src/git/frysk-obj/frysk-core/frysk/pkglibdir/funit-hello Loaded executable file: /home/mark/src/git/frysk-obj/frysk-core/frysk/pkglibdir/funit-hello (fhpd) print _start [1.0] Error: null Error: Symbol "_start" is not found in the current context. (fhpd) print Exception in thread "main" java.lang.NullPointerException at lib.unwind.UnwindX86.createProcInfoFromElfImage(fhpd) at frysk.stack.LibunwindAddressSpace.findProcInfo(fhpd) at lib.unwind.UnwindX86.getProcInfo(fhpd) at lib.unwind.Cursor.getProcInfo(fhpd) at frysk.stack.LibunwindFrame.getAddress(fhpd)
It seems this code path isn't taken anymore. I get the following without stacktrace now: $ frysk-core/frysk/bindir/fhpd (fhpd) load /home/mark/src/git/frysk-obj/frysk-core/frysk/pkglibdir/funit-hello Loaded executable file: /home/mark/src/git/frysk-obj/frysk-core/frysk/pkglibdir/funit-hello (fhpd) print _start [0.0] Error: null (fhpd) I assume the Error: null is still wrong though. At least it is pretty uninformative.
Got it, we don't print the stacktrace anymore (it is a NullPointerException with null message, we only print the 'null').
Fixed by: frysk-core/frysk/stack/ChangeLog 2007-11-19 Mark Wielaard <mwielaard@redhat.com> * LibunwindFrame.java (getAddress): Don't do a proc name lookup, use new Cursor.getIP(). frysk-imports/libunwind/ChangeLog 2007-11-19 Mark Wielaard <mwielaard@redhat.com> * src/mi/Gget_reg.c (unw_get_reg): Use cached value from cursor when looking for UNW_REG_IP. frysk-sys/lib/unwind/ChangeLog 2007-11-19 Mark Wielaard <mwielaard@redhat.com> * Cursor.java (getIP): New method. (unwind): Check current ip. * Unwind.java (getIP): New method. * cni/UnwindH.hxx (getIP): Likewise. (getContext): Check for null elfImage. Although now you will hit either bug #5286 or #5345, but this isn't specific to the exe load target.