FYI, I wrote a script to send LyX thousands of random key presses and
collect the crash reports. (LyX 1.6.4svn, Ubuntu 9.04 32bit, upgraded
to Qt 4.5.1)

In an hour or so I've got three unique crash reports [1].

Do these look like they are useful? (or could be made useful)

Two of the crashes are SIGSEGV's, but the one that makes up virtually
all of the crash reports is the following SIGABRT:

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb6c65700 (LWP 29037)]
0xb7fcb422 in __kernel_vsyscall ()
(gdb) #0  0xb7fcb422 in __kernel_vsyscall ()
#1  0xb70946d0 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7096098 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb72527d9 in __gnu_debug::_Error_formatter::_M_error ()
   from /usr/lib/libstdc++.so.6
#4  0x087ed010 in
__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<std::string*,
std::__norm::vector<std::string, std::allocator<std::string> > >,
std::__debug::vector<std::string, std::allocator<std::string> >
>::operator-= (
    this=0xbfbe4d94, _...@0xbfbe4dbc)
    at /usr/include/c++/4.3/debug/safe_iterator.h:292
#5  0x087ed064 in
__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<std::string*,
std::__norm::vector<std::string, std::allocator<std::string> > >,
std::__debug::vector<std::string, std::allocator<std::string> >
>::operator- (
    this=0xbfbe4da8, _...@0xbfbe4dbc)
    at /usr/include/c++/4.3/debug/safe_iterator.h:303
#6  0x087e8f4c in lyx::frontend::GuiCommandBuffer::down (this=0x954bb78)
    at GuiCommandBuffer.cpp:252
#7  0x087e9fe7 in lyx::frontend::GuiCommandBuffer::qt_metacall (
    this=0x954bb78, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0xbfbe4e6c)
    at GuiCommandBuffer_moc.cpp:82
#8  0xb7448d78 in QMetaObject::activate (sender=0x954d2c0,
    from_signal_index=48, to_signal_index=48, argv=0x0)
    at kernel/qobject.cpp:3120
#9  0xb7449a12 in QMetaObject::activate (sender=0x954d2c0, m=0x89ccaf4,
    local_signal_index=2, argv=0x0) at kernel/qobject.cpp:3194
...


[1] http://www.ucc.asn.au/~mccabedj/lyxtest_crash_reports
[2] http://www.ucc.asn.au/~mccabedj/lyxtest.tar.gz
The code [2] is simple, but ugly, if anyone is interested in it I'd be
happy to clean it up a bit before they read it. Since the code
involves spamming random keypresses, I'd recommend running in a VM,
well away from your main X windows session. It requires xvkbd wmctrl
and lyx  (and preferably libqt4-dbg, subversion and automake), and is
run by running ./autolyx in one xterm, and ./test.py in another. It
assumes lyx is at ~/lyx-1.6.x-test/src/lyx.


--
John C. McCabe-Dansted
PhD Student
University of Western Australia

Reply via email to