WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
25917
REGRESSION (
r43559
?): Javascript debugger crashes when pausing page
https://bugs.webkit.org/show_bug.cgi?id=25917
Summary
REGRESSION (r43559?): Javascript debugger crashes when pausing page
Johan Bergström
Reported
2009-05-21 01:26:57 PDT
I've been able to reproduce a crash in the js debugger by: 1: Visiting a pastebin such as this
http://pastebin.com/f1e0717d9
(will expire june 21st '09) 2: Hit develop -> start debugging javascript 3: Pause and/or reload page The crash occured instantly the first time, but while trying to reproduce I got mixed results, having to toggle / reload a time or two. Crash log attached
Attachments
crash log
(32.72 KB, text/plain)
2009-05-21 01:28 PDT
,
Johan Bergström
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Johan Bergström
Comment 1
2009-05-21 01:28:16 PDT
Created
attachment 30528
[details]
crash log
Mark Rowe (bdash)
Comment 2
2009-05-21 01:30:12 PDT
I can easily reproduce this as well. We're crashing inside a call to JSValue::isObject due to the JSValue's pointer being 0.
Mark Rowe (bdash)
Comment 3
2009-05-21 01:30:26 PDT
<
rdar://problem/6910066
>
Cameron Zwarich (cpst)
Comment 4
2009-05-21 02:56:47 PDT
This is almost surely caused by
r43559
: <
http://trac.webkit.org/changeset/43559
> GDB says that it is getting a property named 'arguments' from a register slot and ending up with a null value, which is very similar to <
http://trac.webkit.org/changeset/43603
> and <
http://trac.webkit.org/changeset/43606
>.
Cameron Zwarich (cpst)
Comment 5
2009-05-21 03:36:31 PDT
The problem is in this code in JSActivation::getOwnPropertySlot(): if (symbolTableGet(propertyName, slot)) return true; if (JSValue* location = getDirectLocation(propertyName)) { slot.setValueSlot(location); return true; } // Only return the built-in arguments object if it wasn't overridden above. if (propertyName == exec->propertyNames().arguments) { slot.setCustom(this, getArgumentsGetter()); return true; } The first check in the symbol table needs to be modified to account for lazy arguments creation.
Cameron Zwarich (cpst)
Comment 6
2009-05-21 03:50:52 PDT
I am not sure of the right way to fix this. You don't want to call out to Interpreter::retrieveArguments() every time, and you don't even have the function in JSActivation to pass to retrieveArguments().
Mark Rowe (bdash)
Comment 7
2009-05-21 12:57:43 PDT
Fixed in
r43976
.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug