Thread: [Sv1-devel] Crash
Brought to you by:
cannam
From: Jakob L. <jak...@gm...> - 2014-02-27 02:21:34
|
Hi, here's a backtrace from a crash. I'm only posting the top of the stack that matters: #0 0x00007ffff42ae51d in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #1 0x00007ffff42be691 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #2 0x00007ffff4298876 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #3 0x00007ffff429d754 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #4 0x00007ffff42303dc in QPainter::drawImage(QPointF const&, QImage const&) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #5 0x000000000054028d in QPainter::drawImage (this=0x7fffffffb020, x=0, y=0, image=..., sx=0, sy=0, sw=-1, sh=-1, flags=...) at /usr/include/qt4/QtGui/qpainter.h:935 #6 0x00000000005d68ee in Colour3DPlotLayer::paintDense (this=0x2204f30, v=0x1c903a0, paint=..., rect=...) at layer/Colour3DPlotLayer.cpp:1556 #7 0x00000000005d4e6f in Colour3DPlotLayer::paint (this=0x2204f30, v=0x1c903a0, paint=..., rect=...) at layer/Colour3DPlotLayer.cpp:1256 #8 0x00000000005876ae in View::paintEvent (this=0x1c903a0, e=0x7fffffffb570) at view/View.cpp:1753 #9 0x000000000056f511 in Pane::paintEvent (this=0x1c903a0, e=0x7fffffffb570) at view/Pane.cpp:404 |
From: Jakob L. <jak...@gm...> - 2014-02-27 09:36:07
|
This is what I found out about the crash: The crash occurs when Colour3DPlotLayer::paintDense is called with Colour3DPlotLayer::m_cache having an empty color table (m_cache->colorTable().size() == 0). The origin of this issue must be m_cache being allocated at Colour3DPlotLayer::fillCache, line 969, which creates a new m_cache and fills it with zeros, but no color table is created. I guess this must happen in many other cases too, but for some reason in other cases the color table get created at some point, while in the case of the crash it doesn't. Btw, this is when plotting output of a plugin with fixed sample size and two features per feature vector (i.e. kind of spectrogram with 2 channels, if you want). With a single feature the (line) plotting is fine. On Wed, Feb 26, 2014 at 6:21 PM, Jakob Leben <jak...@gm...> wrote: > Hi, here's a backtrace from a crash. I'm only posting the top of the stack > that matters: > > #0 0x00007ffff42ae51d in ?? () from > /usr/lib/x86_64-linux-gnu/libQtGui.so.4 > #1 0x00007ffff42be691 in ?? () from > /usr/lib/x86_64-linux-gnu/libQtGui.so.4 > #2 0x00007ffff4298876 in ?? () from > /usr/lib/x86_64-linux-gnu/libQtGui.so.4 > #3 0x00007ffff429d754 in ?? () from > /usr/lib/x86_64-linux-gnu/libQtGui.so.4 > #4 0x00007ffff42303dc in QPainter::drawImage(QPointF const&, QImage > const&) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 > #5 0x000000000054028d in QPainter::drawImage (this=0x7fffffffb020, x=0, > y=0, image=..., sx=0, sy=0, sw=-1, sh=-1, flags=...) at > /usr/include/qt4/QtGui/qpainter.h:935 > #6 0x00000000005d68ee in Colour3DPlotLayer::paintDense (this=0x2204f30, > v=0x1c903a0, paint=..., rect=...) at layer/Colour3DPlotLayer.cpp:1556 > #7 0x00000000005d4e6f in Colour3DPlotLayer::paint (this=0x2204f30, > v=0x1c903a0, paint=..., rect=...) at layer/Colour3DPlotLayer.cpp:1256 > #8 0x00000000005876ae in View::paintEvent (this=0x1c903a0, > e=0x7fffffffb570) at view/View.cpp:1753 > #9 0x000000000056f511 in Pane::paintEvent (this=0x1c903a0, > e=0x7fffffffb570) at view/Pane.cpp:404 > |
From: Chris C. <ca...@al...> - 2014-02-27 10:25:56
|
On Thu, Feb 27, 2014, at 09:35 AM, Jakob Leben wrote: > The origin of this issue must be m_cache being allocated at > Colour3DPlotLayer::fillCache, line 969, which creates a new m_cache and > fills it with zeros, but no color table is created. Yes, there's clearly something suspicious going on around there -- the commented-out "No longer exists in Qt5" m_cache->setNumColors a few lines further down is highly suspect as well! I'll take a closer look. Chris |
From: Jakob L. <jak...@gm...> - 2014-02-27 10:42:05
|
On Thu, Feb 27, 2014 at 2:25 AM, Chris Cannam <ca...@al...>wrote: > On Thu, Feb 27, 2014, at 09:35 AM, Jakob Leben wrote: > > The origin of this issue must be m_cache being allocated at > > Colour3DPlotLayer::fillCache, line 969, which creates a new m_cache and > > fills it with zeros, but no color table is created. > > Yes, there's clearly something suspicious going on around there -- the > commented-out "No longer exists in Qt5" m_cache->setNumColors a few > lines further down is highly suspect as well! Oh yes, that's what I meant, line 983 and below, not 969. |