[webkit-gtk] mingw webkit-1.3.6-2 causes GtkLauncher.exe crash in WTF::TCMalloc_Central_FreeList::FetchFromSpans

Ben Lafreniere bjlafren at cs.uwaterloo.ca
Tue Mar 29 14:48:45 PDT 2011


Hello -

I'm working on a Gtk project for release on Linux and Windows that
uses webkit. I've been developing on Linux, and everything runs fine.

To create Windows builds, I'm using the mingw cross compilation
environment that comes with Fedora 14. It includes a package
mingw32-webkit-1.3.6-2.

Everything compiles fine, but webkit causes a crash when I run on
Windows XP (haven't tried on any other versions of Windows).

To ensure that the problem really is in webkit, I have reproduced the
crash using only GtkLauncher.exe. Running it the first time works
fine, but after a refresh, or closing and then re-running it, I get
the seg fault below.

Any suggestions or ideas are welcome. Thanks. -- Ben

Program received signal SIGSEGV, Segmentation fault.
WTF::TCMalloc_Central_FreeList::FetchFromSpans (this=0x67f827e0)
    at JavaScriptCore/wtf/FastMalloc.cpp:2684
2684    JavaScriptCore/wtf/FastMalloc.cpp: No such file or directory.
        in JavaScriptCore/wtf/FastMalloc.cpp
(gdb) bt
#0  WTF::TCMalloc_Central_FreeList::FetchFromSpans (this=0x67f827e0)
    at JavaScriptCore/wtf/FastMalloc.cpp:2684
#1  0x67a8bc1d in WTF::TCMalloc_Central_FreeList::FetchFromSpansSafe (
    this=0x67f827e0) at JavaScriptCore/wtf/FastMalloc.cpp:2668
#2  0x67a8c1b1 in WTF::TCMalloc_Central_FreeList::RemoveRange (
    this=0x67f827e0, start=0x22d858, end=0x22d854, N=0x22d85c)
    at JavaScriptCore/wtf/FastMalloc.cpp:2644
#3  0x67b3ae77 in WTF::TCMalloc_ThreadCache::FetchFromCentralCache (
    this=0x7ff90240, cl=25, allocationSize=288)
    at JavaScriptCore/wtf/FastMalloc.cpp:2820
#4  0x67a8def0 in Allocate (size=268)
    at JavaScriptCore/wtf/FastMalloc.cpp:2798
#5  do_malloc<true> (size=268) at JavaScriptCore/wtf/FastMalloc.cpp:3531
#6  fastMalloc<true> (size=268) at JavaScriptCore/wtf/FastMalloc.cpp:3735
#7  WTF::fastMalloc (size=268) at JavaScriptCore/wtf/FastMalloc.cpp:3712
#8  0x679cd3ef in operator new (this=0x7fe9a9a0, lvalp=0x22f210,
    llocp=0x22f218, lexType=JSC::Lexer::IgnoreReservedWords, strictMode=false)
    at ./JavaScriptCore/wtf/FastAllocBase.h:121
#9  append<JSC::Identifier> (this=0x7fe9a9a0, lvalp=0x22f210, llocp=0x22f218,
    lexType=JSC::Lexer::IgnoreReservedWords, strictMode=false)
    at ./JavaScriptCore/wtf/SegmentedVector.h:148
#10 makeIdentifier (this=0x7fe9a9a0, lvalp=0x22f210, llocp=0x22f218,
    lexType=JSC::Lexer::IgnoreReservedWords, strictMode=false)
    at JavaScriptCore/parser/ParserArena.h:52
#11 makeIdentifier (this=0x7fe9a9a0, lvalp=0x22f210, llocp=0x22f218,
    lexType=JSC::Lexer::IgnoreReservedWords, strictMode=false)
    at JavaScriptCore/parser/Lexer.cpp:325
#12 parseIdentifier (this=0x7fe9a9a0, lvalp=0x22f210, llocp=0x22f218,
    lexType=JSC::Lexer::IgnoreReservedWords, strictMode=false)
    at JavaScriptCore/parser/Lexer.cpp:442
#13 JSC::Lexer::lex (this=0x7fe9a9a0, lvalp=0x22f210, llocp=0x22f218,
    lexType=JSC::Lexer::IgnoreReservedWords, strictMode=false)
    at JavaScriptCore/parser/Lexer.cpp:1024
#14 0x67b05b97 in next (this=0x22f1c8, context=...)
    at JavaScriptCore/parser/JSParser.cpp:96
#15 JSC::JSParser::parseMemberExpression<JSC::SyntaxChecker> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1823
#16 0x67b0a833 in parseUnaryExpression<JSC::SyntaxChecker> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1871
#17 parseBinaryExpression<JSC::SyntaxChecker> (this=0x22f1c8, context=...)
    at JavaScriptCore/parser/JSParser.cpp:1453
#18 parseConditionalExpression<JSC::SyntaxChecker> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1418
#19 JSC::JSParser::parseAssignmentExpression<JSC::SyntaxChecker> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1362
#20 0x67b05d4c in parseArguments<JSC::SyntaxChecker> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1743
#21 JSC::JSParser::parseMemberExpression<JSC::SyntaxChecker> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1813
#22 0x67b0a833 in parseUnaryExpression<JSC::SyntaxChecker> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1871
#23 parseBinaryExpression<JSC::SyntaxChecker> (this=0x22f1c8, context=...)
    at JavaScriptCore/parser/JSParser.cpp:1453
#24 parseConditionalExpression<JSC::SyntaxChecker> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1418
#25 JSC::JSParser::parseAssignmentExpression<JSC::SyntaxChecker> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1362
#26 0x67af7d62 in JSC::JSParser::parseExpression<JSC::SyntaxChecker> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1336
#27 0x67af8ab2 in JSC::JSParser::parseIfStatement<JSC::SyntaxChecker> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1265
#28 0x67af7839 in JSC::JSParser::parseStatement<JSC::SyntaxChecker> (
    this=0x22f1c8, context=..., directive=@0x22de5c)
    at JavaScriptCore/parser/JSParser.cpp:1089
#29 0x67b00680 in JSC::JSParser::parseSourceElements<(JSC::JSParser::SourceEleme
ntsMode)1, JSC::SyntaxChecker> (this=0x22f1c8, context=...)
    at JavaScriptCore/parser/JSParser.cpp:561
#30 0x67af7980 in parseBlockStatement<JSC::SyntaxChecker> (this=0x22f1c8,
    context=..., directive=@0x22df9c)
    at JavaScriptCore/parser/JSParser.cpp:1061
#31 JSC::JSParser::parseStatement<JSC::SyntaxChecker> (this=0x22f1c8,
    context=..., directive=@0x22df9c)
    at JavaScriptCore/parser/JSParser.cpp:1077
#32 0x67af8b2d in JSC::JSParser::parseIfStatement<JSC::SyntaxChecker> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1271
#33 0x67af7839 in JSC::JSParser::parseStatement<JSC::SyntaxChecker> (
    this=0x22f1c8, context=..., directive=@0x22e03c)
    at JavaScriptCore/parser/JSParser.cpp:1089
#34 0x67b00680 in JSC::JSParser::parseSourceElements<(JSC::JSParser::SourceEleme
ntsMode)1, JSC::SyntaxChecker> (this=0x22f1c8, context=...)
    at JavaScriptCore/parser/JSParser.cpp:561
#35 0x67af7980 in parseBlockStatement<JSC::SyntaxChecker> (this=0x22f1c8,
    context=..., directive=@0x22e17c)
    at JavaScriptCore/parser/JSParser.cpp:1061
#36 JSC::JSParser::parseStatement<JSC::SyntaxChecker> (this=0x22f1c8,
    context=..., directive=@0x22e17c)
    at JavaScriptCore/parser/JSParser.cpp:1077
#37 0x67af8b2d in JSC::JSParser::parseIfStatement<JSC::SyntaxChecker> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1271
#38 0x67af7839 in JSC::JSParser::parseStatement<JSC::SyntaxChecker> (
    this=0x22f1c8, context=..., directive=@0x22e23c)
    at JavaScriptCore/parser/JSParser.cpp:1089
#39 0x67b00483 in JSC::JSParser::parseSourceElements<(JSC::JSParser::SourceEleme
ntsMode)0, JSC::SyntaxChecker> (this=0x22f1c8, context=...)
    at JavaScriptCore/parser/JSParser.cpp:561
#40 0x67afc85f in parseFunctionBody<JSC::SyntaxChecker> (this=0x22f1c8,
    context=..., name=@0x22e3ac, parameters=@0x22e3a8, body=@0x22e3a4,
    openBracePos=@0x22e3a0, closeBracePos=@0x22e39c, bodyStartLine=@0x22e398)
    at JavaScriptCore/parser/JSParser.cpp:1159
#41 JSC::JSParser::parseFunctionInfo<(JSC::JSParser::FunctionRequirements)1, tru
e, JSC::SyntaxChecker> (this=0x22f1c8, context=..., name=@0x22e3ac,
    parameters=@0x22e3a8, body=@0x22e3a4, openBracePos=@0x22e3a0,
    closeBracePos=@0x22e39c, bodyStartLine=@0x22e398)
    at JavaScriptCore/parser/JSParser.cpp:1187
#42 0x67b072ef in JSC::JSParser::parseFunctionDeclaration<JSC::SyntaxChecker>
    (this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1212
#43 0x67af7802 in JSC::JSParser::parseStatement<JSC::SyntaxChecker> (
    this=0x22f1c8, context=..., directive=@0x22e46c)
    at JavaScriptCore/parser/JSParser.cpp:1084
#44 0x67b00483 in JSC::JSParser::parseSourceElements<(JSC::JSParser::SourceEleme
ntsMode)0, JSC::SyntaxChecker> (this=0x22f1c8, context=...)
    at JavaScriptCore/parser/JSParser.cpp:561
#45 0x67afac70 in parseFunctionBody<JSC::ASTBuilder> (this=0x22f1c8,
    context=..., name=@0x22e638, parameters=@0x22e64c, body=@0x22e648,
    openBracePos=@0x22e644, closeBracePos=@0x22e640, bodyStartLine=@0x22e63c)
    at JavaScriptCore/parser/JSParser.cpp:1159
#46 JSC::JSParser::parseFunctionInfo<(JSC::JSParser::FunctionRequirements)0, fal
se, JSC::ASTBuilder> (this=0x22f1c8, context=..., name=@0x22e638,
    parameters=@0x22e64c, body=@0x22e648, openBracePos=@0x22e644,
    closeBracePos=@0x22e640, bodyStartLine=@0x22e63c)
    at JavaScriptCore/parser/JSParser.cpp:1187
#47 0x67b047cb in JSC::JSParser::parseMemberExpression<JSC::ASTBuilder> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1777
#48 0x67b01fa2 in JSC::JSParser::parseUnaryExpression<JSC::ASTBuilder> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1871
#49 0x67b0985f in parseBinaryExpression<JSC::ASTBuilder> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1453
#50 parseConditionalExpression<JSC::ASTBuilder> (this=0x22f1c8, context=...)
    at JavaScriptCore/parser/JSParser.cpp:1418
#51 JSC::JSParser::parseAssignmentExpression<JSC::ASTBuilder> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1362
#52 0x67af7a9c in JSC::JSParser::parseExpression<JSC::ASTBuilder> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1336
#53 0x67b046d4 in parsePrimaryExpression<JSC::ASTBuilder> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1677
#54 JSC::JSParser::parseMemberExpression<JSC::ASTBuilder> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1780
#55 0x67b01fa2 in JSC::JSParser::parseUnaryExpression<JSC::ASTBuilder> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1871
#56 0x67b0985f in parseBinaryExpression<JSC::ASTBuilder> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1453
#57 parseConditionalExpression<JSC::ASTBuilder> (this=0x22f1c8, context=...)
    at JavaScriptCore/parser/JSParser.cpp:1418
#58 JSC::JSParser::parseAssignmentExpression<JSC::ASTBuilder> (this=0x22f1c8,
    context=...) at JavaScriptCore/parser/JSParser.cpp:1362
#59 0x67af7a9c in JSC::JSParser::parseExpression<JSC::ASTBuilder> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1336
#60 0x67b06ba4 in JSC::JSParser::parseExpressionStatement<JSC::ASTBuilder> (
    this=0x22f1c8, context=...) at JavaScriptCore/parser/JSParser.cpp:1250
#61 0x67af7212 in JSC::JSParser::parseStatement<JSC::ASTBuilder> (
    this=0x22f1c8, context=..., directive=@0x22eddc)
    at JavaScriptCore/parser/JSParser.cpp:1124
#62 0x67b00326 in JSC::JSParser::parseSourceElements<(JSC::JSParser::SourceEleme
ntsMode)0, JSC::ASTBuilder> (this=0x22f1c8, context=...)
    at JavaScriptCore/parser/JSParser.cpp:561
#63 0x679ca644 in JSC::JSParser::parseProgram (this=0x22f1c8,
    lexicalGlobalObject=0x19ac380) at JavaScriptCore/parser/JSParser.cpp:528
#64 0x679cb0bf in JSC::jsParse (lexicalGlobalObject=0x19ac380,
    parameters=0x0, strictness=JSC::JSParseNormal,
    parserMode=JSC::JSParseProgramCode, source=0x7fd248c8)
    at JavaScriptCore/parser/JSParser.cpp:489
#65 0x679cfd5a in JSC::Parser::parse (this=0x7fef6c98,
    lexicalGlobalObject=0x19ac380, parameters=0x0,
    strictness=JSC::JSParseNormal, mode=JSC::JSParseProgramCode,
    errLine=0x22f83c, errMsg=0x22f838) at JavaScriptCore/parser/Parser.cpp:51
#66 0x67af43ef in JSC::Parser::parse<JSC::ProgramNode> (this=0x7fef6c98,
    lexicalGlobalObject=0x19ac380, debugger=0x0,
    debuggerExecState=0x7fd217d8, source=..., parameters=0x0,
    strictness=JSC::JSParseNormal, exception=0x22f92c)
    at ./JavaScriptCore/parser/Parser.h:88
#67 0x67a11461 in JSC::ProgramExecutable::compileInternal (this=0x7fd24898,
    exec=0x7fd217d8, scopeChainNode=0x7fd2db28)
    at JavaScriptCore/runtime/Executable.cpp:148
#68 0x679f919a in compile (exec=0x7fd217d8, scopeChain=..., source=...,
    thisValue=...) at ./JavaScriptCore/runtime/Executable.h:250
#69 JSC::evaluate (exec=0x7fd217d8, scopeChain=..., source=..., thisValue=...)
    at JavaScriptCore/runtime/Completion.cpp:56
#70 0x66c2178a in evaluate (this=0x7feb39fc, sourceCode=...,
    world=0x7fef6af8, shouldAllowXSS=WebCore::DoNotAllowXSS)
    at WebCore/bindings/js/JSMainThreadExecState.h:54
#71 WebCore::ScriptController::evaluateInWorld (this=0x7feb39fc,
    sourceCode=..., world=0x7fef6af8, shouldAllowXSS=WebCore::DoNotAllowXSS)
    at WebCore/bindings/js/ScriptController.cpp:148
#72 0x66c221e0 in WebCore::ScriptController::evaluate (this=0x7feb39fc,
    sourceCode=..., shouldAllowXSS=WebCore::DoNotAllowXSS)
    at WebCore/bindings/js/ScriptController.cpp:171
#73 0x66d4c663 in WebCore::ScriptElementData::evaluateScript (
    this=0x7ff6f618, sourceCode=...) at WebCore/dom/ScriptElement.cpp:201
#74 0x66d4c90b in WebCore::ScriptElementData::execute (this=0x7ff6f618,
    cachedScript=0x7fd21480) at WebCore/dom/ScriptElement.cpp:222
#75 0x66cdd514 in WebCore::AsyncScriptRunner::timerFired (this=0x7ff53040,
    timer=0x7ff53050) at WebCore/dom/AsyncScriptRunner.cpp:87
#76 0x67d2cf71 in WebCore::Timer<WebCore::AsyncScriptRunner>::fired (
    this=0x7ff53050) at ./WebCore/platform/Timer.h:98
#77 0x670c7fd9 in WebCore::ThreadTimers::sharedTimerFiredInternal (
    this=0x7fec53c0) at WebCore/platform/ThreadTimers.cpp:112
#78 0x670c8073 in WebCore::ThreadTimers::sharedTimerFired ()
    at WebCore/platform/ThreadTimers.cpp:90
#79 0x6734da11 in WebCore::timeout_cb ()
    at WebCore/platform/gtk/SharedTimerGtk.cpp:49
#80 0x685ef00e in ?? ()
   from c:\Documents and Settings\bjlafren.LOOPS\Desktop\shared_with_fedora\webk
ittest\bin\libglib-2.0-0.dll
#81 0x685eda57 in ?? ()
   from c:\Documents and Settings\bjlafren.LOOPS\Desktop\shared_with_fedora\webk
ittest\bin\libglib-2.0-0.dll
#82 0x685ee190 in ?? ()
   from c:\Documents and Settings\bjlafren.LOOPS\Desktop\shared_with_fedora\webk
ittest\bin\libglib-2.0-0.dll
#83 0x685ee8a1 in ?? ()
   from c:\Documents and Settings\bjlafren.LOOPS\Desktop\shared_with_fedora\webk
ittest\bin\libglib-2.0-0.dll
#84 0x00529fcf in ?? ()
   from c:\Documents and Settings\bjlafren.LOOPS\Desktop\shared_with_fedora\webk
ittest\bin\libgtk-win32-2.0-0.dll
#85 0x00401da7 in main (argc=1, argv=0xe40398)
    at WebKitTools/GtkLauncher/main.c:268


More information about the webkit-gtk mailing list