[Webkit-unassigned] [Bug 39959] New: exitStatus() returns 0 when app crashes due to missing symbol in dylib

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon May 31 09:35:11 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=39959

           Summary: exitStatus() returns 0 when app crashes due to missing
                    symbol in dylib
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Macintosh
        OS/Version: Mac OS X 10.6
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Tools / Tests
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: ddkilzer at webkit.org
                CC: mrowe at apple.com, aroben at apple.com


* SUMMARY
When an app crashes on Mac OS X 10.6 due to a missing symbol in a dylib (for example, testapi in run-javascriptcore-tests), the exitStatus() method in webkitdirs.pm returns 0 (zero) because the value passed in is 5.  This happens because WEXITSTATUS() does an 8-bit right shift of the value passed to it, which causes 5 to become 0.

Normally the 8-bit shift is the correct action since the exit status of the child process is stored in the upper 8 bits of $?.  However, when an app crashes due to a missing symbol in a dylib, $? is set to 5 and there is no child exit status.

Unfortunately, I haven't found any Perl man pages that fully describe what the lower 8 bits of $? are ("man perlvar" describes some, but not all, of the lower bits), so it's not clear how best to fix this.  Changing every place that calls exitStatus() to also check $? seems burdensome.

It would be nice if exitStatus() would always return a non-zero value if a non-zero value was passed in, even if it was less than 256.  I'm not sure if that would break other platforms, though.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list