On Friday 16 Sep 2005 17:06, Stephen Torri wrote:
> On Fri, 2005-09-16 at 09:40 +0000, Chris Cannam wrote:
> > I also managed to crash this editor but haven't got a
> > stack trace for you yet.
>
> [...]
> I will see what I can do this weekend to attempt to break it.
Here are some crash traces. Unfortunately I haven't managed to
conjure up a fast rule for reproducing these -- generally I find
they happen at a not necessarily expected moment usually when
dragging out a barre. I did wonder whether they might be
associated with drags that are too short to define an actual
barre but that are perceived as drags rather than clicks by the
code anyway, but I haven't been at all able to convince myself
of that.
Three traces here. The first one is an unterminating mutual
recursion. You see a long stream of lines like
Fingering::setNote - string #5, fret #1
Fingering::setNote - string #6, fret #1
Fingering::setNote - string #5, fret #1
Fingering::setNote - string #6, fret #1
Fingering::setNote - string #5, fret #1
Fingering::setNote - string #6, fret #1
Fingering::setNote - string #5, fret #1
Fingering::setNote - string #6, fret #1
Fingering::setNote - string #5, fret #1
Fingering::setNote - string #6, fret #1
Fingering::setNote - string #5, fret #1
Fingering::setNote - string #6, fret #1
on the console, and then:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1234648224 (LWP 5829)]
0xb6bba195 in _IO_file_xsputn () from /lib/tls/i686/cmov/libc.so.6
(gdb) where
#0 0xb6bba195 in _IO_file_xsputn () from /lib/tls/i686/cmov/libc.so.6
#1 0xb6baf03f in fwrite () from /lib/tls/i686/cmov/libc.so.6
#2 0xb6d1b6a8 in std::__basic_file<char>::xsputn ()
from /usr/lib/libstdc++.so.5
#3 0xb6ccd303 in std::basic_filebuf<char, std::char_traits<char>
>::_M_convert_to_external () from /usr/lib/libstdc++.so.5
#4 0xb6ccd081 in std::basic_filebuf<char, std::char_traits<char>
>::_M_really_overflow () from /usr/lib/libstdc++.so.5
#5 0xb6cccf8c in std::basic_filebuf<char, std::char_traits<char> >::overflow
() from /usr/lib/libstdc++.so.5
#6 0xb6d0a89f in std::basic_streambuf<char, std::char_traits<char> >::xsputn
() from /usr/lib/libstdc++.so.5
#7 0xb6ccd808 in std::basic_filebuf<char, std::char_traits<char> >::xsputn ()
from /usr/lib/libstdc++.so.5
#8 0xb6cea3df in std::num_put<char, std::ostreambuf_iterator<char,
std::char_traits<char> > >::_M_convert_int<unsigned long> () from
/usr/lib/libstdc++.so.5
#9 0xb6ce9e10 in std::num_put<char, std::ostreambuf_iterator<char,
std::char_traits<char> > >::do_put () from /usr/lib/libstdc++.so.5
#10 0xb6cffa72 in std::ostream::operator<< () from /usr/lib/libstdc++.so.5
#11 0xb6cffdd6 in std::ostream::operator<< () from /usr/lib/libstdc++.so.5
#12 0x085026c3 in guitar::Fingering::setNote (this=0x8c95bd8, stringPos=6,
notePos=1, actionVal=PRESSED) at RGbuild/gui/guitar/fingering.cpp:319
#13 0x08502cb3 in guitar::Fingering::splitBarre (this=0x8c95bd8,
barrePtr=0x8c5c068, [EMAIL PROTECTED])
at RGbuild/gui/guitar/fingering.cpp:450
#14 0x08502a03 in guitar::Fingering::checkNoteEffect (this=0x8c95bd8,
[EMAIL PROTECTED]) at RGbuild/gui/guitar/fingering.cpp:374
#15 0x08502718 in guitar::Fingering::setNote (this=0x8c95bd8, stringPos=5,
notePos=1, actionVal=PRESSED) at RGbuild/gui/guitar/fingering.cpp:324
#16 0x08502c7e in guitar::Fingering::splitBarre (this=0x8c95bd8,
barrePtr=0x8c5c068, [EMAIL PROTECTED])
at RGbuild/gui/guitar/fingering.cpp:446
#17 0x08502a03 in guitar::Fingering::checkNoteEffect (this=0x8c95bd8,
[EMAIL PROTECTED]) at RGbuild/gui/guitar/fingering.cpp:374
#18 0x08502718 in guitar::Fingering::setNote (this=0x8c95bd8, stringPos=6,
notePos=1, actionVal=PRESSED) at RGbuild/gui/guitar/fingering.cpp:324
#19 0x08502cb3 in guitar::Fingering::splitBarre (this=0x8c95bd8,
barrePtr=0x8c5c068, [EMAIL PROTECTED])
at RGbuild/gui/guitar/fingering.cpp:450
#20 0x08502a03 in guitar::Fingering::checkNoteEffect (this=0x8c95bd8,
[EMAIL PROTECTED]) at RGbuild/gui/guitar/fingering.cpp:374
[etc]
Levels 0-11 are probably irrelevant, the point is that fingering.cpp
line 374 calls line 450 calls line 324 calls line 374 and so on
forever.
The second and third are plain crashes, probably related but not the
same. This one looks like perhaps an Event::get on an Event that's
already been deleted (if it was a nonexistent property on an existing
event, an exception would be thrown instead):
FingeringConsturctor::mousePressEvent - press string #6, fret #3
Left border: 20
Left border: 20
Left border: 20
Left border: 20
Left border: 20
Left border: 20
Fingering::setNote - string #6, fret #3
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1234648224 (LWP 5797)]
0x0839019b in std::_Rb_tree<Rosegarden::PropertyName,
std::pair<Rosegarden::PropertyName const, Rosegarden::PropertyStoreBase*>,
std::_Select1st<std::pair<Rosegarden::PropertyName const,
Rosegarden::PropertyStoreBase*> >, std::less<Rosegarden::PropertyName>,
std::allocator<std::pair<Rosegarden::PropertyName const,
Rosegarden::PropertyStoreBase*> > >::find (this=0x11, [EMAIL PROTECTED])
at stl_tree.h:1267
1267 _Link_type __y = _M_header; // Last node which is not less than
__k.
(gdb) where
#0 0x0839019b in std::_Rb_tree<Rosegarden::PropertyName,
std::pair<Rosegarden::PropertyName const, Rosegarden::PropertyStoreBase*>,
std::_Select1st<std::pair<Rosegarden::PropertyName const,
Rosegarden::PropertyStoreBase*> >, std::less<Rosegarden::PropertyName>,
std::allocator<std::pair<Rosegarden::PropertyName
const,Rosegarden::PropertyStoreBase*> > >::find (this=0x11, [EMAIL PROTECTED])
at stl_tree.h:1267
#1 0x08390186 in std::map<Rosegarden::PropertyName,
Rosegarden::PropertyStoreBase*, std::less<Rosegarden::PropertyName>,
std::allocator<std::pair<Rosegarden::PropertyName const,
Rosegarden::PropertyStoreBase*> > >::find (this=0x11,
[EMAIL PROTECTED]) at stl_map.h:468
#2 0x08546378 in Rosegarden::Event::find (this=0x8cc4268, [EMAIL PROTECTED],
[EMAIL PROTECTED]) at RGbuild/base/Event.C:130
#3 0x080e49af in Rosegarden::Event::find (this=0x8cc4268, [EMAIL PROTECTED],
[EMAIL PROTECTED]) at Event.h:360
#4 0x08504fe9 in Rosegarden::Event::get<(Rosegarden::PropertyType)4> (
this=0x8cc4268, [EMAIL PROTECTED], [EMAIL PROTECTED]) at Event.h:392
#5 0x085104ba in guitar::Barre::getStart (this=0x8a24018)
at RGbuild/gui/guitar/barre.cpp:96
#6 0x08502c08 in guitar::Fingering::splitBarre (this=0x8c892b0,
barrePtr=0x8a24018, [EMAIL PROTECTED])
at RGbuild/gui/guitar/fingering.cpp:436
#7 0x08502a03 in guitar::Fingering::checkNoteEffect (this=0x8c892b0,
[EMAIL PROTECTED]) at RGbuild/gui/guitar/fingering.cpp:374
#8 0x08502718 in guitar::Fingering::setNote (this=0x8c892b0, stringPos=6,
notePos=3, actionVal=PRESSED) at RGbuild/gui/guitar/fingering.cpp:324
#9 0x0851b38c in guitar::FingeringConstructor::mouseReleaseEvent (
this=0x8c89068, e=0xbfffe350) at RGbuild/gui/guitar/fingers.cpp:187
#10 0xb78d1b37 in QWidget::event () from /usr/lib/libqt-mt.so.3
#11 0xb783ee1f in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#12 0xb783e514 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#13 0xb71e3e43 in KApplication::notify () from /usr/lib/libkdecore.so.4
#14 0xb77d35b0 in QETWidget::translateMouseEvent () from /usr/lib/libqt-mt.so.3
#15 0xb77d123e in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#16 0xb77e8254 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#17 0xb78511d8 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#18 0xb783f0d1 in QApplication::enter_loop () from /usr/lib/libqt-mt.so.3
#19 0xb7a260c0 in QDialog::exec () from /usr/lib/libqt-mt.so.3
#20 0x082bbb76 in FretboardInserter::handleLeftButtonPress (this=0x8c7b338,
staffNo=0, e=0xbfffed00, element=0x0) at RGbuild/gui/notationtool.cpp:2139
#21 0x08194462 in EditTool::handleMousePress (this=0x8c7b338, time=0,
height=3, staffNo=0, e=0xbfffed00, el=0x0) at RGbuild/gui/edittool.cpp:137
#22 0x082fda96 in NotationView::slotItemPressed (this=0x8a51870, height=3,
staffNo=0, e=0xbfffed00, el=0x0) at RGbuild/gui/notationviewslots.cpp:2738
#23 0x082e6a05 in NotationView::qt_invoke (this=0x8a51870, _id=266,
_o=0xbfffeb20) at notationview.moc:969
#24 0xb789b71c in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#25 0x0826a3d6 in NotationCanvasView::itemPressed (this=0x8c96788, t0=3, t1=0,
t2=0xbfffed00, t3=0x0) at notationcanvasview.moc:149
#26 0x08269744 in NotationCanvasView::handleMousePress (this=0x8c96788,
height=3, staffNo=0, e=0xbfffed00, el=0x0)
at RGbuild/gui/notationcanvasview.cpp:288
#27 0x082694d3 in NotationCanvasView::contentsMousePressEvent (this=0x8c96788,
e=0xbfffed00) at RGbuild/gui/notationcanvasview.cpp:247
#28 0xb79b1772 in QScrollView::viewportMousePressEvent ()
from /usr/lib/libqt-mt.so.3
#29 0xb79b10d5 in QScrollView::eventFilter () from /usr/lib/libqt-mt.so.3
#30 0xb789904e in QObject::activate_filters () from /usr/lib/libqt-mt.so.3
#31 0xb7898f7c in QObject::event () from /usr/lib/libqt-mt.so.3
#32 0xb78d1aaf in QWidget::event () from /usr/lib/libqt-mt.so.3
#33 0xb783ee1f in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#34 0xb783e514 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#35 0xb71e3e43 in KApplication::notify () from /usr/lib/libkdecore.so.4
#36 0xb77d35b0 in QETWidget::translateMouseEvent () from /usr/lib/libqt-mt.so.3
#37 0xb77d123e in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#38 0xb77e8254 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#39 0xb78511d8 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#40 0xb7851088 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#41 0xb783f071 in QApplication::exec () from /usr/lib/libqt-mt.so.3
#42 0x082013d4 in main (argc=3, argv=0xbffffa34) at RGbuild/gui/main.cpp:624
(gdb)
This one _might_ be a bit more straightforward:
FingeringConsturctor::mousePressEvent - press string #6, fret #2
Left border: 20
Left border: 20
Left border: 20
Left border: 20
Left border: 20
Left border: 20
Fingering::setNote - string #6, fret #2
Fingering::setBarre - fret #3067342436, start #3067342436, end #7
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1234648224 (LWP 5813)]
0x08510c7d in __normal_iterator (this=0xbfffdd9c, [EMAIL PROTECTED])
at stl_iterator.h:593
593 __normal_iterator(const _Iterator& __i) : _M_current(__i) { }
(gdb) where
#0 0x08510c7d in __normal_iterator (this=0xbfffdd9c, [EMAIL PROTECTED])
at stl_iterator.h:593
#1 0x08510c5c in std::vector<guitar::Barre*, std::allocator<guitar::Barre*>
>::end (this=0x0) at stl_vector.h:371
#2 0x08510b2c in guitar::BarreList::erase (this=0x0, bar_ptr=0x8c90118)
at RGbuild/gui/guitar/barrelist.cpp:43
#3 0x0850266b in guitar::Fingering::deleteBarre (this=0x8c930e0,
barrePtr=0x8c90118) at RGbuild/gui/guitar/fingering.cpp:305
#4 0x08502f6e in guitar::Fingering::splitBarre (this=0x8c930e0,
barrePtr=0x8c90118, [EMAIL PROTECTED])
at RGbuild/gui/guitar/fingering.cpp:520
#5 0x08502a03 in guitar::Fingering::checkNoteEffect (this=0x8c930e0,
[EMAIL PROTECTED]) at RGbuild/gui/guitar/fingering.cpp:374
#6 0x08502718 in guitar::Fingering::setNote (this=0x8c930e0, stringPos=6,
notePos=2, actionVal=PRESSED) at RGbuild/gui/guitar/fingering.cpp:324
#7 0x0851b38c in guitar::FingeringConstructor::mouseReleaseEvent (
this=0x8c92e98, e=0xbfffe350) at RGbuild/gui/guitar/fingers.cpp:187
#8 0xb78d1b37 in QWidget::event () from /usr/lib/libqt-mt.so.3
#9 0xb783ee1f in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#10 0xb783e514 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#11 0xb71e3e43 in KApplication::notify () from /usr/lib/libkdecore.so.4
#12 0xb77d35b0 in QETWidget::translateMouseEvent () from /usr/lib/libqt-mt.so.3
#13 0xb77d123e in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#14 0xb77e8254 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#15 0xb78511d8 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#16 0xb783f0d1 in QApplication::enter_loop () from /usr/lib/libqt-mt.so.3
#17 0xb7a260c0 in QDialog::exec () from /usr/lib/libqt-mt.so.3
#18 0x082bbb76 in FretboardInserter::handleLeftButtonPress (this=0x8c7c130,
staffNo=0, e=0xbfffed00, element=0x0) at RGbuild/gui/notationtool.cpp:2139
#19 0x08194462 in EditTool::handleMousePress (this=0x8c7c130, time=0,
height=1, staffNo=0, e=0xbfffed00, el=0x0) at RGbuild/gui/edittool.cpp:137
#20 0x082fda96 in NotationView::slotItemPressed (this=0x8a55f60, height=1,
staffNo=0, e=0xbfffed00, el=0x0) at RGbuild/gui/notationviewslots.cpp:2738
#21 0x082e6a05 in NotationView::qt_invoke (this=0x8a55f60, _id=266,
_o=0xbfffeb20) at notationview.moc:969
#22 0xb789b71c in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#23 0x0826a3d6 in NotationCanvasView::itemPressed (this=0x8c99fb8, t0=1, t1=0,
t2=0xbfffed00, t3=0x0) at notationcanvasview.moc:149
#24 0x08269744 in NotationCanvasView::handleMousePress (this=0x8c99fb8,
height=1, staffNo=0, e=0xbfffed00, el=0x0)
at RGbuild/gui/notationcanvasview.cpp:288
#25 0x082694d3 in NotationCanvasView::contentsMousePressEvent (this=0x8c99fb8,
e=0xbfffed00) at RGbuild/gui/notationcanvasview.cpp:247
#26 0xb79b1772 in QScrollView::viewportMousePressEvent ()
from /usr/lib/libqt-mt.so.3
#27 0xb79b10d5 in QScrollView::eventFilter () from /usr/lib/libqt-mt.so.3
---Type <return> to continue, or q <return> to quit---
#28 0xb789904e in QObject::activate_filters () from /usr/lib/libqt-mt.so.3
#29 0xb7898f7c in QObject::event () from /usr/lib/libqt-mt.so.3
#30 0xb78d1aaf in QWidget::event () from /usr/lib/libqt-mt.so.3
#31 0xb783ee1f in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#32 0xb783e514 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#33 0xb71e3e43 in KApplication::notify () from /usr/lib/libkdecore.so.4
#34 0xb77d35b0 in QETWidget::translateMouseEvent () from /usr/lib/libqt-mt.so.3
#35 0xb77d123e in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#36 0xb77e8254 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#37 0xb78511d8 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#38 0xb7851088 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#39 0xb783f071 in QApplication::exec () from /usr/lib/libqt-mt.so.3
#40 0x082013d4 in main (argc=3, argv=0xbffffa34) at RGbuild/gui/main.cpp:624
(gdb)
Hope this is helpful.
Chris
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel