Unhelpful bug report (ups-state file causes crash)

From: Bob Carragher (dancebob_at_mindspring.com)
Date: Sat Jun 01 2002 - 10:35:32 BST

  • Next message: Hans-Thomas Götz: "Compiling UPS on sparc-solaris8 with gcc = error?"
  • Next message: Ian Edwards: "(no subject)"
  • Next message: targetemailextractor_at_btamail.net.cn: "*****SPAM***** ADV: Harvest lots of Target Email addresses quickly,/"
    Hello,
    
    I have a UPS bug to report.  UPS will crash if it reads a function
    entry from the ups-state/<binary>.state file for a function whose
    parameters have since changed, and thus the C++ mangled name differs.
    So, for example, if in a class you had previously defined Foo() as
    
         void Foo(classA param1,
                  classA param2,
                  classB param3);
    
    and then redefined it to
    
         void Foo(      classA param1,
                        classA param2,
                  const classB param3) const;
    
    (Modulo the renaming, this is what happened.)
    
    I've tried running ups from within another ups session to try to
    catch exactly where it crashes, but the call stack is corrupted --
    this is what I would see in the state window:
    
         Target /usr/X11R6/bin/ups
                 ups <Bob's-binary>
         Signals
         Environment
         Untyped variables
         Source files
         Functions
            <bad frame pointer 0x26c3815b>
            <bad text address 0x8900096b>
            <bad text address 0x401e81ec>
            -------------              SIGSEGV -------------
         Breakpoints
         Watchpoints
    
    Here is what I would see in the crashing ups window (before it would
    disappear):
    
         ups-state/exec-binary.state,42: No function `Foo__15ClassNameP15classAT1Pq215classA14_classB'
    
    The function entry in the state file was (again, modulo name
    changing):
    
         function Foo__15ClassNameP15classAT1PQ215classA14_classB "ClassName::Foo" ClassName.cpp 192 {
                 var this            unsigned_hex     indent 1 [0]
                 216..245 var localVar        signed_decimal   indent 0 []
                 216..245 expr unsigned_hex "&localVar"
         }
    
    By deleting this one entry, and rerunning ups, the crash was
    prevented.
    
    Unfortunately, I tried to create a simple, small example that
    I could send, but was unable to duplicate the problem.  That
    is why this is an "unhelpful bug report."  I'm hoping that the
    description is enough to help you unearth the problem.  For me,
    deleting the entry and restarting is far faster than trying to
    isolate what is exactly is causing the problem (that, plus
    already-missed deadlines B-).  If you can find and fix the
    problem, you have my gratitude and respect!
    
    I used UPS version 3.37-beta5, which was compiled with gcc 2.95.3
    on Redhat Linux 6.2 (kernel version 2.2.14).
    
    Thanks!
    
    				Bob Carragher
    


    This archive was generated by hypermail 2.1.4 : Sat Jun 01 2002 - 13:05:25 BST