By request, I have obtained the following backtraces from valgrind (attached) and gdb from a LyX 1.2.0CVS of today with Juergens patch applied compiled with --disable-optimization. They were both made doing the same thing as in my prior backtraces.
Claus Hindsgaul gdb: (gdb) run Starting program: /usr/local/bin/lyx Program received signal SIGSEGV, Segmentation fault. Row::par (this=0x18) at lyxrow.h:92 92 return par_; (gdb) backtrace #0 Row::par (this=0x18) at lyxrow.h:92 #1 0x08132c65 in LyXText::drawInset (this=0x83e0d58, p=@0xbffff000, pos=20) at text.C:495 #2 0x08133707 in LyXText::draw (this=0x83e0d58, p=@0xbffff000, vpos=@0xbfffefb8) at text.C:649 #3 0x08141fac in LyXText::paintRowText (this=0x83e0d58, p=@0xbffff000) at text.C:3665 #4 0x081421ed in LyXText::getVisibleRow (this=0x83e0d58, bv=0x83cb430, y_offset=56, x_offset=0, row=0x83e11d0, y=56, cleared=false) at text.C:3723 #5 0x0811c4bd in LyXScreen::drawFromTo (this=0x841b630, text=0x83e0d58, bv=0x83cb430, y1=0, y2=414, y_offset=0, x_offset=0, internal=true) at screen.C:130 #6 0x0811c33d in LyXScreen::redraw (this=0x841b630, text=0x83e0d58, bv=0x83cb430) at screen.C:92 #7 0x0805d77a in BufferView::Pimpl::workAreaExpose (this=0x83cb580) at BufferView_pimpl.C:1073 #8 0x0806b389 in SigC::ObjectSlot0_<void, BufferView::Pimpl>::callback (d=0x83cc2b4) at ../sigc++/object_slot.h:56 #9 0x08058823 in SigC::Callback0<void>::call (this=0x83cc2b4) at ../../sigc++/slot.h:260 #10 0x0805890b in SigC::Signal0<void, SigC::Marshal<void> >::emit (this=0x83cb5ac) at ../../sigc++/basic_signal.h:194 #11 0x080596b3 in SigC::Signal0<void, SigC::Marshal<void> >::operator() (this=0x83cb5ac) at ../../../sigc++/basic_signal.h:172 #12 0x080a15aa in WorkArea::work_area_handler (ob=0x83cc3e8, event=1, key=0, xev=0x0) at WorkArea.C:352 #13 0x080a05fe in C_WorkArea_work_area_handler (ob=0x83cc3e8, event=1, key=0, xev=0x0) at WorkArea.C:68 #14 0x400828f3 in fl_reset_focus_object () from /usr/X11R6/lib/libforms.so.0.89 #15 0x400829b5 in fl_handle_object () from /usr/X11R6/lib/libforms.so.0.89 #16 0x400822c8 in fl_find_last () from /usr/X11R6/lib/libforms.so.0.89 #17 0x4008241e in fl_redraw_form () from /usr/X11R6/lib/libforms.so.0.89 #18 0x40081a45 in fl_hide_object () from /usr/X11R6/lib/libforms.so.0.89 #19 0x080a1168 in {anonymous}::destroy_object (obj=0x83cb858) at WorkArea.C:239 #20 0x080a11b1 in WorkArea::createPixmap (this=0x83cb5ac, width=667, height=414) at WorkArea.C:253 #21 0x080a159b in WorkArea::work_area_handler (ob=0x83cc3e8, event=1, key=0, xev=0x0) at WorkArea.C:351 #22 0x080a05fe in C_WorkArea_work_area_handler (ob=0x83cc3e8, event=1, key=0, xev=0x0) at WorkArea.C:68 #23 0x400828f3 in fl_reset_focus_object () from /usr/X11R6/lib/libforms.so.0.89 #24 0x400829b5 in fl_handle_object () from /usr/X11R6/lib/libforms.so.0.89 #25 0x400822c8 in fl_find_last () from /usr/X11R6/lib/libforms.so.0.89 #26 0x400823cb in fl_redraw_object () from /usr/X11R6/lib/libforms.so.0.89 #27 0x080a2396 in WorkArea::redraw (this=0x83cb5ac) at WorkArea.h:53 #28 0x0805aea2 in BufferView::Pimpl::redraw (this=0x83cb580) at BufferView_pimpl.C:270 #29 0x0805b5d2 in BufferView::Pimpl::resizeCurrentBuffer (this=0x83cb580) at BufferView_pimpl.C:385 #30 0x0805ac15 in BufferView::Pimpl::buffer (this=0x83cb580, b=0x83e0ae0) at BufferView_pimpl.C:214 #31 0x08054006 in BufferView::buffer (this=0x83cb430, b=0x83e0ae0) at BufferView.C:64 #32 0x080f2cdf in LyXFunc::open (this=0x83b4b30, fname=@0xbffffa20) at lyxfunc.C:1905 #33 0x080efd03 in LyXFunc::dispatch (this=0x83b4b30, action=LFUN_FILE_OPEN, argument=0xbffffa20) at lyxfunc.C:1346 #34 0x080ed78a in LyXFunc::verboseDispatch (this=0x83b4b30, action=LFUN_FILE_OPEN, argument=@0xbffffa54, show_sc=true) at lyxfunc.C:803 #35 0x080ed734 in LyXFunc::verboseDispatch (this=0x83b4b30, ac=461, show_sc=true) at lyxfunc.C:795 #36 0x0824b083 in Menubar::Pimpl::MenuCallback (ob=0x83c5000, button=1) at Menubar_pimpl.C:586 #37 0x08248b96 in C_Menubar_Pimpl_MenuCallback (ob=0x83c5000, button=1) at Menubar_pimpl.C:80 #38 0x40047cb4 in fl_object_qread () from /usr/X11R6/lib/libforms.so.0.89 #39 0x40058679 in fl_check_forms () from /usr/X11R6/lib/libforms.so.0.89 #40 0x08247c7a in GUIRunTime::runTime () at GUIRunTime.C:94 #41 0x080e08ab in LyXGUI::runTime (this=0x835a4f8) at lyx_gui.C:292 #42 0x080e10b5 in LyX::LyX (this=0xbffffc0c, argc=0xbffffc34, argv=0xbffffc94) at ../src/lyx_main.C:176 #43 0x0810d40e in main (argc=1, argv=0xbffffc94) at ../src/main.C:38 (gdb)
==18461== valgrind-20020424, a memory error detector for x86 GNU/Linux. ==18461== Copyright (C) 2000-2002, and GNU GPL'd, by Julian Seward. ==18461== Estimated CPU clock rate is 199 MHz ==18461== For more details, rerun with: -v ==18461== --18461-- Warning: splitting giant basic block into pieces --18461-- Warning: splitting giant basic block into pieces --18461-- Warning: splitting giant basic block into pieces --18461-- Warning: splitting giant basic block into pieces --18461-- Warning: splitting giant basic block into pieces --18461-- Warning: splitting giant basic block into pieces --18461-- Warning: splitting giant basic block into pieces --18461-- Warning: splitting giant basic block into pieces --18461-- Warning: splitting giant basic block into pieces ==18461== Syscall param write(buf) contains uninitialised or unaddressable byte(s) ==18461== at 0x40624414: (within /lib/libc-2.2.5.so) ==18461== by 0x4046AE83: (within /usr/X11R6/lib/libX11.so.6.2) ==18461== by 0x4044F9DC: (within /usr/X11R6/lib/libX11.so.6.2) ==18461== Address 0x4243C6D6 is 938 bytes inside a block of size 2048 alloc'd ==18461== at 0x4003D43C: calloc (vg_clientfuncs.c:202) ==18461== by 0x40443236: (within /usr/X11R6/lib/libX11.so.6.2) ==18461== by 0x4031A009: (within /usr/X11R6/lib/libforms.so.0.89) ==18461== ==18461== Syscall param writev(vector[...]) contains uninitialised or unaddressable byte(s) ==18461== at 0x4062B2B7: (within /lib/libc-2.2.5.so) ==18461== by 0x4046A3C3: (within /usr/X11R6/lib/libX11.so.6.2) ==18461== by 0x4046AEDB: (within /usr/X11R6/lib/libX11.so.6.2) ==18461== Address 0x4297EECA is 850 bytes inside a block of size 247080 alloc'd ==18461== at 0x4003D018: malloc (vg_clientfuncs.c:96) ==18461== by 0x40452AB5: (within /usr/X11R6/lib/libX11.so.6.2) ==18461== by 0x4044706D: (within /usr/X11R6/lib/libX11.so.6.2) convert: /usr/local/lib/valgrind/libpthread.so.0: no version information available (required by /usr/lib/libMagick.so.5) convert: /usr/local/lib/valgrind/libpthread.so.0: no version information available (required by /usr/lib/libMagick.so.5) ==18461== ==18461== Invalid read of size 4 ==18461== at 0x8104736: Row::previous(void) const (lyxrow.C:112) ==18461== by 0x8132C4B: LyXText::drawInset(LyXText::DrawRowParams &, int) (text.C:494) ==18461== by 0x8133707: LyXText::draw(LyXText::DrawRowParams &, int &) (text.C:649) ==18461== by 0x8141FAC: LyXText::paintRowText(LyXText::DrawRowParams &) (text.C:3665) ==18461== Address 0x42FA52B4 is 32 bytes inside a block of size 36 free'd ==18461== at 0x4003D312: __builtin_delete (vg_clientfuncs.c:171) ==18461== by 0x8143CB9: LyXText::removeRow(Row *) const (text2.C:376) ==18461== by 0x8137C5F: LyXText::breakAgain(BufferView *, Row *) const (text.C:1653) ==18461== by 0x814A2D5: LyXText::checkParagraph(BufferView *, Paragraph *, int) (text2.C:1956) ==18461== ==18461== Invalid read of size 4 ==18461== at 0x8104746: ??? (lyxrow.h:92) ==18461== by 0x8132C79: LyXText::drawInset(LyXText::DrawRowParams &, int) (text.C:495) ==18461== by 0x8133707: LyXText::draw(LyXText::DrawRowParams &, int &) (text.C:649) ==18461== by 0x8141FAC: LyXText::paintRowText(LyXText::DrawRowParams &) (text.C:3665) ==18461== Address 0x42FA5294 is 0 bytes inside a block of size 36 free'd ==18461== at 0x4003D312: __builtin_delete (vg_clientfuncs.c:171) ==18461== by 0x8143CB9: LyXText::removeRow(Row *) const (text2.C:376) ==18461== by 0x8137C5F: LyXText::breakAgain(BufferView *, Row *) const (text.C:1653) ==18461== by 0x814A2D5: LyXText::checkParagraph(BufferView *, Paragraph *, int) (text2.C:1956) pthread_mutex_lock-NOT-INSIDE-VALGRIND pthread_mutex_lock-NOT-INSIDE-VALGRIND pthread_mutex_unlock-NOT-INSIDE-VALGRIND pthread_mutex_unlock-NOT-INSIDE-VALGRIND pthread_mutex_lock-NOT-INSIDE-VALGRIND pthread_mutex_unlock-NOT-INSIDE-VALGRIND convert: relocation error: /usr/lib/libMagick.so.5: symbol open64, version GLIBC_2.2 not defined in file libpthread.so.0 with link time reference ==18461== ==18461== ERROR SUMMARY: 22 errors from 4 contexts (suppressed: 0 from 0) ==18461== malloc/free: in use at exit: 866014 bytes in 6402 blocks. ==18461== malloc/free: 35813 allocs, 29411 frees, 2100469 bytes allocated. ==18461== For a detailed leak analysis, rerun with: --leak-check=yes ==18461== For counts of detected errors, rerun with: -v