Bennett Helm wrote:
> On Nov 29, 2006, at 3:03 PM, Peter Kümmel wrote:
> 
>> Bennett Helm wrote:
>>> On Nov 29, 2006, at 12:36 PM, Peter Kümmel wrote:
>>>
>>>> OK, the patch has tested if theApp is valid, and it seems it is, but
>>>> it crashes anyway. So here a patch which tests if the reason for the
>>>> crash is the pure virtual function. It could be that is also does
>>>> not help, but I hope it does.
>>>
>>> Still crashes. Here's the new backtrace.
>>>
>>
>> At least a more verbose backtrace.
>>
>>> Assertion triggered in T* boost::scoped_ptr<T>::operator->() const [with
>>> T = lyx::frontend::Application] by failing check "ptr != 0" in file
>>> ../boost/boost/scoped_ptr.hpp:94
>>> Assertion triggered in T* boost::scoped_ptr<T>::operator->() const [with
>>> T = lyx::LyXServer] by failing check "ptr != 0" in file
>>> ../boost/boost/scoped_ptr.hpp:94
>>>
>>
>> The first assert while calling quit the second one while
>> handling the assert (emergencyCleanup).
>>
>>> Program received signal SIGABRT, Aborted.
>>> 0x9003d1dc in kill ()
>>> (gdb) bt
>>> #0  0x9003d1dc in kill ()
>>> #1  0x9010f2af in raise ()
>>> #2  0x9010de02 in abort ()
>>> #3  0x0010ec57 in lyx::support::abort () at abort.C:25
>>> #4  0x0006c110 in lyx::LyX::emergencyCleanup (this=0xbffff954) at
>>> ../boost/boost/scoped_ptr.hpp:94
>>> #5  0x0002798b in boost::emergencyCleanup () at boost.C:45
>>> #6  0x00027a55 in boost::assertion_failed (expr=0x5c2610 "ptr != 0",
>>> function=0x5d0918 "T* boost::scoped_ptr<T>::operator->() const [with T =
>>> lyx::frontend::Application]", file=0x5c25f0
>>> "../boost/boost/scoped_ptr.hpp", line=94) at boost.C:55
>>> #7  0x0006934a in lyx::LyX::quit (this=0xbffff954) at
>>> ../boost/boost/scoped_ptr.hpp:94
>>> #8  0x00069394 in lyx::LyX::~LyX (this=0xbffff954) at lyx_main.C:179
>>> #9  0x00003035 in main (argc=1, argv=0xbffff9e4) at main.C:48
>>>
>>> Bennett
>>>
>>
>> Looks like quit is called twice or before anything is created,
>>  but it's hard to say without a Mac.
>>
>> What's the output with attached patch? (don't remove the last patch)
> 
> No crash. Here's the output from the terminal:

Great!

Does it also work when you remove the patch before the last one?
Attached the revert command.

> 
> LyX::quit() called: 1
> LyX::quit()  1
> LyX::quit()  2
> LyX::quit()  3
> LyX::quit()  4
> LyX::quit()  5
> LyX::quit()  6

here: the 7 is missing, means no application_ available.

> LyX::quit()  8
> 
> Program exited normally.
> 
>>
>> Hope you don't get annoyed by all these patching and compiling.
> 
> ... And I was hoping you didn't get annoyed by having to debug through me!
> 

It's fine with me :)


Peter
svn revert src/frontends/qt4/GuiApplication.h 
src/frontends/qt4/GuiApplication.C src/frontends/Application.h

Reply via email to