Hi again, while trying to make my patches explode, I saw yet another old annoyance: LyX' second, third, etc. (forked) thread crashes. Debugging by attaching to child's threads (where you never know which one crashes, others only freeze) was always to complicated ... And main thread (with the docs) is safely protected by the kernel; so it's only an annoyance to see all those render childs sisegv one after the other. For the first time I got a bit meaningful core dump (though I doubt it can help too much): Do 12.08.1999: 22.25.30,30 Uhr [D:\XFree86\src\lyx-1.0.3\src] gdb lyx core GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.16 (emx), Copyright 1996 Free Software Foundation, Inc... #0 0x1f49e365 in ?? () (gdb) bt #0 0x1f49e365 in ?? () #1 0x6 in ?? () #2 0x1f499b33 in ?? () #3 0x15eaf in NormalizePath (path=@0x21ee734) at D:/XFree86/src/lyx-1.0.3/src/lyx_main.C:592 [Here's my main interest: I made NormalizePath() a static function of src/lyx_main.C, as it's only used there. Am I right, that signal handler call (SIGSEGV in some forked child) happened before and my patch can't be the reason for the crash? ] #4 <signal handler called> [(SIGSEGV)] #5 0x11d6cc in runqueue () at figinset.C:597 [The forked child to render inline] #6 0x11e191 in addwait (psx=0, psy=0, pswid=367, pshgh=158, data=0x294920) at figinset.C:736 #7 0x11e3ab in getfigdata (wid=162, hgh=69, fname=@0x2945a8, psx=0, psy=0, pswid=367, pshgh=158, raw_wid=162, raw_hgh=69, angle=0, flags=9 '\t') at figinset.C:797 #8 0x121e61 in InsetFig::Recompute (this=0x294580) at figinset.C:1688 #9 0x120294 in InsetFig::Read (this=0x294580, lex=@0x21ef27c) at figinset.C:1210 #10 0xb2929 in Buffer::readLyXformat2 (this=0x1c2620, lex=@0x21ef27c, par=0x2944c0) at buffer.C:863 #11 0xb4da5 in Buffer::readFile (this=0x1c2620, lex=@0x21ef27c, par=0x0) at buffer.C:1102 #12 0xe9754 in BufferList::readFile (this=0x150080, s=@0x21efb6c, ronly=false) at bufferlist.C:530 #13 0xea5c8 in BufferList::loadLyXFile (this=0x150080, filename=@0x21efba8, tolastfiles=false) at bufferlist.C:649 #14 0x8d6ee in Menus::MenuDocu (this=0x1af140, docname=@0x21efc0c) at menus.C:1602 #15 0x8d038 in Menus::ShowHelpMenu (ob=0x1b3c00) at menus.C:1577 #16 0x140596f8 in ?? () #17 0x14063b55 in ?? () #18 0x361ce in LyXGUI::runTime (this=0x179f34) at lyx_gui.C:629 #19 0x1094a in LyX::LyX (this=0x21efd28, argc=0x21efd54, argv=0x21effb8) at D:/XFree86/src/lyx-1.0.3/src/lyx_main.C:146 #20 0x1022d in main (argc=1, argv=0x21effb8) at D:/XFree86/src/lyx-1.0.3/src/main.C:55 (gdb) (gdb) info locals No frame selected. (gdb) up No stack. (gdb) up No stack. -------------------------- This is the actual dbg session, where childs crashed: Do 12.08.1999: 22.23.22,52 Uhr [D:\XFree86\src\lyx-1.0.3\src] gdb GDB is free software and you are welcome to distribute copies of it under certain conditions; type "show copying" to see the conditions. There is absolutely no warranty for GDB; type "show warranty" for details. GDB 4.16 (emx), Copyright 1996 Free Software Foundation, Inc. (gdb) r Starting program: d:/xfree86/src/lyx-1.0.3/src/lyx -dbg 3 [New thread 1] [Load DLL: D:\OS2\DLL\DOSCALL1.DLL] [ BTW: I'm *not* running DOS ;^) only part of the OS/2 OS call interface] [Load DLL: D:\EMX\DLL\EMX.DLL] [Load DLL: D:\EMX\DLL\EMXLIBCM.DLL] [.text: 0x1f480000 - 0x1f4a9880] <-[here's the 'exitus in tabula' ;) ] [.data: 0x14250000 - 0x14256060] [ #0 0x1f49e365 in ?? () ] [.bss: 0x14256060 - 0x142597c0] [Load DLL: D:\XFREE86\DLL\X11.DLL] [.text: 0x1f2f0000 - 0x1f360d00] [.data: 0x14240000 - 0x14242da0] [.bss: 0x14242da0 - 0x14243400] [Load DLL: D:\XFREE86\DLL\FORMS.DLL] [static is no difference here] [.text: 0x14050000 - 0x14098990] [.data: 0x140a0000 - 0x140a6670] [.bss: 0x140a6670 - 0x140b34e0] [Load DLL: D:\XFREE86\DLL\XPM.DLL] [.text: 0x1ee90000 - 0x1ee99870] [.data: 0x14170000 - 0x14170130] [.bss: 0x14170130 - 0x14170140] [Load DLL: D:\OS2\DLL\PMMERGE.DLL] [Load DLL: D:\OS2\DLL\PMSPL.DLL] [Load DLL: D:\OS2\DLL\PMVIOP.DLL] [Load DLL: D:\OS2\DLL\SPL1B.DLL] [Load DLL: D:\OS2\DLL\PMGPI.DLL] [Load DLL: D:\OS2\DLL\SOFTDRAW.DLL] [Load DLL: D:\OS2\DLL\PMATM.DLL] [Load DLL: D:\OS2\DLL\UCONV.DLL] [Load DLL: D:\OS2\DLL\FREETYPE.DLL] [Load DLL: D:\OS2\DLL\DISPLAY.DLL] [Load DLL: D:\OS2\DLL\WINNERMM.DLL] [Load DLL: D:\OS2\DLL\DSPRES.DLL] [Load DLL: D:\OS2\DLL\BVHWNDW.DLL] [Load DLL: D:\TCPIP\DLL\SO32DLL.DLL] [This is stone-age, yet rock solid: [Load DLL: D:\TCPIP\DLL\TCP32DLL.DLL] kind of bsd3.2-like] [New thread 2] [Thread terminated: 1] [Thread terminated: 2] [There were many more threads IIRC, they don't appear?] Program exited normally. ----------------------- Greets, Arnd