Georg Baum wrote:
> Am Mittwoch, 20. September 2006 21:46 schrieb Peter Kümmel:
>> Georg Baum wrote:
>>>> It crashes by design?
>>> Yes: It tries to do some document stuff even if a read failed. I see it 
> too 
>>> on linux. I am sure that I did not see it some time ago when I did some 
>>> lyx2lyx stuff, probably because of an older compiler.
>> the assert tests the operator[](int pos) access: size()>pos but pos is 0.
>> On the lyx side it is  *iterCont_[pos];  which eventually does not
>> produce a crash.
> 
> My backtrace is completely different:
> 0  0xffffe410 in __kernel_vsyscall ()
> #1  0xa71fd821 in raise () from /lib/tls/i686/cmov/libc.so.6
> #2  0xa71fefb9 in abort () from /lib/tls/i686/cmov/libc.so.6
> #3  0xa7372639 in __gnu_debug::_Error_formatter::_M_error () 
> from /usr/lib/libstdc++.so.6
> #4  0x0836ae52 in ParIterator::operator-> (this=0xafce18cc)

I think it crashes at the same line of code,
the msvc backtrace is only more detailed:

Paragraph * ParIterator::operator->() const
{
        return const_cast<Paragraph*>(&text()->getPar(pit()));

with: getPar(pit_type pit) const { return pars_[pit]; }

with:   const_reference operator[](size_type pos) const
        {
                return *iterCont_[pos];



Have you compiled with optimization enabled? Then the compiler
would eliminate all the other calls, so that the crash happens
in the line mentioned by your backtrace.

Peter


Reply via email to