Results 1 to 1 of 1

Thread: QWebView crash (qt 4.7.2)

  1. #1
    Join Date
    Feb 2011
    Posts
    354
    Thanks
    17
    Thanked 27 Times in 24 Posts
    Qt products
    Qt4 Qt5
    Platforms
    MacOS X Windows

    Default Re: QWebView crash (qt 4.7.2)

    Today I noticed QWebView suddenly crashed while browsing. I post screenshots and copy of local variables.

    callstack.jpg

    The crash was in the setUpIterator function in TextBreakIteratorQt.cpp unit. Iterator.string is a bad pointer and memcmp crashed trying to compare it with another string of length 10.

    Local data:
    Qt Code:
    1. - iterator {length=10 string=0x0898f8ec <Bad Ptr> } WebCore::TextBreakIterator &
    2. + QTextBoundaryFinder {t=Line s="" chars=0x0898f8ec ...} QTextBoundaryFinder
    3. length 10 int
    4. + string 0x0898f8ec <Bad Ptr> const wchar_t *
    5. iterator.length 10 int
    6. + iterator.string 0x0898f8ec <Bad Ptr> const wchar_t *
    7. length 10 int
    8. + string 0x0736af6c "Adem Kiliç﷽﷽ꮫꮫꮫꮫﻮﻮ" const wchar_t *
    9. type Line QTextBoundaryFinder::BoundaryType
    To copy to clipboard, switch view to plain text mode 

    Callstack:
    Qt Code:
    1. msvcr90d.dll!cmpDWORD(const void * lhs=0x0736af6c, const void * rhs=0x0898f8ec) + 0x1c bytes C
    2. msvcr90d.dll!unaligned_memcmp(const unsigned char * bLHS=0x0736af76, const unsigned char * bRHS=0x0898f8f6, unsigned int siz=10) + 0x4aa bytes C
    3. msvcr90d.dll!memcmp(const void * lhs=0x0736af6c, const void * rhs=0x0898f8ec, unsigned int siz=10) + 0x19c bytes C
    4. > QtWebKitd4.dll!WebCore::setUpIterator(WebCore::TextBreakIterator & iterator={...}, QTextBoundaryFinder::BoundaryType type=Line, const wchar_t * string=0x0736af6c, int length=10) Line 59 + 0x3d bytes C++
    5. QtWebKitd4.dll!WebCore::lineBreakIterator(const wchar_t * string=0x0736af6c, int length=10) Line 89 + 0x14 bytes C++
    6. QtWebKitd4.dll!WebCore::nextBreakablePosition(const wchar_t * str=0x0736af6c, int pos=5, int len=10, bool treatNoBreakSpaceAsBreak=false) Line 120 + 0xd bytes C++
    7. QtWebKitd4.dll!WebCore::isBreakable(const wchar_t * str=0x0736af6c, int pos=5, int len=10, int & nextBreakable=4, bool breakNBSP=false) Line 33 + 0x16 bytes C++
    8. QtWebKitd4.dll!WebCore::RenderBlock::findNextLineBreak(WebCore::BidiResolver<WebCore::InlineIterator,WebCore::BidiRun> & resolver={...}, bool firstLine=true, bool & isLineEmpty=false, bool & previousLineBrokeCleanly=false, WebCore::EClear * clear=0x005fbbc0) Line 1600 + 0x3d bytes C++
    9. QtWebKitd4.dll!WebCore::RenderBlock::layoutInlineChildren(bool relayoutChildren=true, int & repaintTop=0, int & repaintBottom=0) Line 671 + 0x33 bytes C++
    10. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlock(bool relayoutChildren=true) Line 745 C++
    11. QtWebKitd4.dll!WebCore::RenderBlock::layout() Line 674 C++
    12. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox * child=0x08d8ec5c, WebCore::RenderBlock::MarginInfo & marginInfo={...}, int & previousFloatBottom=0, int & maxFloatBottom=0) Line 1364 C++
    13. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlockChildren(bool relayoutChildren=true, int & maxFloatBottom=0) Line 1304 C++
    14. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlock(bool relayoutChildren=true) Line 749 C++
    15. QtWebKitd4.dll!WebCore::RenderBlock::layout() Line 674 C++
    16. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox * child=0x075e9b98, WebCore::RenderBlock::MarginInfo & marginInfo={...}, int & previousFloatBottom=0, int & maxFloatBottom=4354) Line 1364 C++
    17. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlockChildren(bool relayoutChildren=false, int & maxFloatBottom=4354) Line 1304 C++
    18. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlock(bool relayoutChildren=false) Line 749 C++
    19. QtWebKitd4.dll!WebCore::RenderBlock::layout() Line 674 C++
    20. QtWebKitd4.dll!WebCore::RenderObject::layoutIfNeeded() Line 518 + 0x26 bytes C++
    21. QtWebKitd4.dll!WebCore::RenderBlock::insertFloatingObject(WebCore::RenderBox * o=0x087e3898) Line 2343 C++
    22. QtWebKitd4.dll!WebCore::RenderBlock::handleFloatingChild(WebCore::RenderBox * child=0x087e3898, const WebCore::RenderBlock::MarginInfo & marginInfo={...}) Line 939 C++
    23. QtWebKitd4.dll!WebCore::RenderBlock::handleSpecialChild(WebCore::RenderBox * child=0x087e3898, const WebCore::RenderBlock::MarginInfo & marginInfo={...}) Line 921 + 0x27 bytes C++
    24. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlockChildren(bool relayoutChildren=false, int & maxFloatBottom=0) Line 1299 + 0x10 bytes C++
    25. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlock(bool relayoutChildren=false) Line 749 C++
    26. QtWebKitd4.dll!WebCore::RenderBlock::layout() Line 674 C++
    27. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox * child=0x07300a08, WebCore::RenderBlock::MarginInfo & marginInfo={...}, int & previousFloatBottom=1068, int & maxFloatBottom=117) Line 1364 C++
    28. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlockChildren(bool relayoutChildren=false, int & maxFloatBottom=117) Line 1304 C++
    29. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlock(bool relayoutChildren=false) Line 749 C++
    30. QtWebKitd4.dll!WebCore::RenderBlock::layout() Line 674 C++
    31. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox * child=0x077d6118, WebCore::RenderBlock::MarginInfo & marginInfo={...}, int & previousFloatBottom=1068, int & maxFloatBottom=0) Line 1364 C++
    32. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlockChildren(bool relayoutChildren=false, int & maxFloatBottom=0) Line 1304 C++
    33. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlock(bool relayoutChildren=false) Line 749 C++
    34. QtWebKitd4.dll!WebCore::RenderBlock::layout() Line 674 C++
    35. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox * child=0x077d5fe0, WebCore::RenderBlock::MarginInfo & marginInfo={...}, int & previousFloatBottom=1068, int & maxFloatBottom=0) Line 1364 C++
    36. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlockChildren(bool relayoutChildren=false, int & maxFloatBottom=0) Line 1304 C++
    37. QtWebKitd4.dll!WebCore::RenderBlock::layoutBlock(bool relayoutChildren=false) Line 749 C++
    38. QtWebKitd4.dll!WebCore::RenderBlock::layout() Line 674 C++
    39. QtWebKitd4.dll!WebCore::RenderView::layout() Line 125 C++
    40. QtWebKitd4.dll!WebCore::FrameView::layout(bool allowSubtree=true) Line 720 C++
    41. QtWebKitd4.dll!WebCore::Document::updateLayout() Line 1432 C++
    42. QtWebKitd4.dll!WebCore::Document::updateLayoutIgnorePendingStylesheets() Line 1464 C++
    43. QtWebKitd4.dll!WebCore::Element::offsetWidth() Line 346 C++
    44. QtWebKitd4.dll!WebCore::jsElementOffsetWidth(JSC::ExecState * exec=0x08240120, JSC::JSValue slotBase={...}, const JSC::Identifier & __formal={...}) Line 297 + 0x8 bytes C++
    45. QtWebKitd4.dll!JSC::PropertySlot::getValue(JSC::ExecState * exec=0x08240120, const JSC::Identifier & propertyName={...}) Line 78 + 0x26 bytes C++
    46. QtWebKitd4.dll!JSC::JSValue::get(JSC::ExecState * exec=0x08240120, const JSC::Identifier & propertyName={...}, JSC::PropertySlot & slot={...}) Line 630 + 0x14 bytes C++
    47. QtWebKitd4.dll!cti_op_get_by_id(void * * args=0x005fcc28) Line 1296 C++
    48. 052e1344()
    49. QtWebKitd4.dll!JSC::FunctionExecutable::generateJITCode(JSC::ExecState * exec=0x08240120, JSC::ScopeChainNode * scopeChainNode=0x0737f310) Line 171 C++
    50. 07380d64()
    51. QtWebKitd4.dll!JSC::Interpreter::execute(JSC::FunctionExecutable * functionExecutable=0x08c748d0, JSC::ExecState * callFrame=0x0740b9a8, JSC::JSFunction * function=0x08049d80, JSC::JSObject * thisObj=0x080443c0, const JSC::ArgList & args={...}, JSC::ScopeChainNode * scopeChain=0x08e086b0, JSC::JSValue * exception=0x0737f310) Line 687 + 0x31 bytes C++
    52. QtWebKitd4.dll!JSC::JSFunction::call(JSC::ExecState * exec=0x0740b9a8, JSC::JSValue thisValue={...}, const JSC::ArgList & args={...}) Line 122 + 0x4e bytes C++
    53. QtWebKitd4.dll!JSC::call(JSC::ExecState * exec=0x0740b9a8, JSC::JSValue functionObject={...}, JSC::CallType callType=CallTypeJS, const JSC::CallData & callData={...}, JSC::JSValue thisValue={...}, const JSC::ArgList & args={...}) Line 39 + 0x2b bytes C++
    54. QtWebKitd4.dll!WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext * scriptExecutionContext=, WebCore::Event * event=) Line 115 + 0xd3 bytes C++
    55. QtWebKitd4.dll!WebCore::EventTarget::fireEventListeners(WebCore::Event * event=0x0770ec88, WebCore::EventTargetData * d=0x04346198, WTF::Vector<WebCore::RegisteredEventListener,1> & entry={...}) Line 316 C++
    56. QtWebKitd4.dll!WebCore::EventTarget::fireEventListeners(WebCore::Event * event=0x0770ec88) Line 281 C++
    57. QtWebKitd4.dll!WebCore::Node::handleLocalEvents(WebCore::Event * event=0x0770ec88) Line 2505 C++
    58. QtWebKitd4.dll!WebCore::Node::dispatchGenericEvent(WTF::PassRefPtr<WebCore::Event> prpEvent={...}) Line 2645 C++
    59. QtWebKitd4.dll!WebCore::Node::dispatchEvent(WTF::PassRefPtr<WebCore::Event> prpEvent={...}) Line 2567 + 0x1a bytes C++
    60. QtWebKitd4.dll!WebCore::Document::finishedParsing() Line 4289 C++
    61. QtWebKitd4.dll!WebCore::HTMLParser::finished() Line 1667 C++
    62. QtWebKitd4.dll!WebCore::HTMLTokenizer::end() Line 1879 C++
    63. QtWebKitd4.dll!WebCore::HTMLTokenizer::write(const WebCore::SegmentedString & str={...}, bool appendData=true) Line 1822 C++
    64. QtWebKitd4.dll!WebCore::HTMLTokenizer::timerFired(WebCore::Timer<WebCore::HTMLTokenizer> * __formal=0x0732f8a8) Line 1856 + 0x2b bytes C++
    65. QtWebKitd4.dll!WebCore::Timer<WebCore::HTMLTokenizer>::fired() Line 98 + 0x1f bytes C++
    66. QtWebKitd4.dll!WebCore::ThreadTimers::sharedTimerFiredInternal() Line 115 C++
    67. QtWebKitd4.dll!WebCore::ThreadTimers::sharedTimerFired() Line 91 C++
    68. QtWebKitd4.dll!WebCore::SharedTimerQt::timerEvent(QTimerEvent * ev=0x005fd7d0) Line 118 C++
    69. QtCored4.dll!QObject::event(QEvent * e=0x005fd7d0) Line 1182 C++
    70. QtGuid4.dll!QApplicationPrivate::notify_helper(QObject * receiver=0x04095a50, QEvent * e=0x005fd7d0) Line 4462 + 0x11 bytes C++
    71. QtGuid4.dll!QApplication::notify(QObject * receiver=0x04095a50, QEvent * e=0x005fd7d0) Line 3862 + 0x10 bytes C++
    72. QtCored4.dll!QCoreApplication::notifyInternal(QObject * receiver=0x04095a50, QEvent * event=0x005fd7d0) Line 731 + 0x15 bytes C++
    73. QtCored4.dll!QCoreApplication::sendEvent(QObject * receiver=0x04095a50, QEvent * event=0x005fd7d0) Line 215 + 0x39 bytes C++
    74. QtCored4.dll!QEventDispatcherWin32::event(QEvent * e=0x086df3d8) Line 1139 + 0x10 bytes C++
    75. QtGuid4.dll!QApplicationPrivate::notify_helper(QObject * receiver=0x03953260, QEvent * e=0x086df3d8) Line 4462 + 0x11 bytes C++
    76. QtGuid4.dll!QApplication::notify(QObject * receiver=0x03953260, QEvent * e=0x086df3d8) Line 3862 + 0x10 bytes C++
    77. QtCored4.dll!QCoreApplication::notifyInternal(QObject * receiver=0x03953260, QEvent * event=0x086df3d8) Line 731 + 0x15 bytes C++
    78. QtCored4.dll!QCoreApplication::sendEvent(QObject * receiver=0x03953260, QEvent * event=0x086df3d8) Line 215 + 0x39 bytes C++
    79. ...
    To copy to clipboard, switch view to plain text mode 
    Last edited by mentalmushroom; 5th June 2012 at 15:11.

Similar Threads

  1. Replies: 8
    Last Post: 3rd September 2013, 09:51
  2. Crash gracefully? No crash!
    By lni in forum Qt Programming
    Replies: 0
    Last Post: 7th July 2010, 03:59
  3. !!!A Strange Crash
    By hhf in forum Qt Programming
    Replies: 12
    Last Post: 10th March 2010, 12:45
  4. Unexplained Crash
    By jbkc85 in forum Qt Programming
    Replies: 1
    Last Post: 12th March 2009, 19:06
  5. qDevelop crash
    By babu198649 in forum Qt-based Software
    Replies: 7
    Last Post: 2nd February 2008, 05:34

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.