Subject: Zoom/spellcheck bug.
From: David Schmitz (david@ecsd.com)
Date: Fri Oct 27 2000 - 02:54:11 CDT
I've discovered an odd bug. It's been befuddling me for a couple of days 
and I think I've finally tracked it down. I've been taking some old, old 
text files and converting them to .rtf by hand; putting formatting, 
typefaces, etc back into the document. Since I've been doing this on and 
off, I've been saving, and reloadign the documents sporadically.
One of the first things I do when I open up a document is to set the 
zoom to the proper size. (140% is perfect for my monitor, so I plopped 
that into the sources and did a recompile) When I choose 140% from teh 
drop down menu, sometimes AbiWord would crash, and other times it would 
not. My dander up, I decided to investigate. (My first issue was to get 
rid of that damned GNOME segfault dialog so that the program could dump 
a proper core file :-)
After doing some experiementing, I noticed that the wp would die if I 
did my zoom before the program is done putting those red lines under 
misspelled words. If I do the zoom *after* the little red lines are all 
drawn, the program happily chugs along without skipping a beat.
After causing a crash, a post mortem backtrack on the core gives me this:
(gdb) backtrace
#0  0x405f4d8f in ?? () from /lib/libc.so.6
#1  0x80bc1f5 in _Timer_Proc ()
#2  0x4043c04d in ?? () from /usr/lib/libglib-1.2.so.0
#3  0x4043b186 in ?? () from /usr/lib/libglib-1.2.so.0
#4  0x4043b751 in ?? () from /usr/lib/libglib-1.2.so.0
#5  0x4043b8f1 in ?? () from /usr/lib/libglib-1.2.so.0
#6  0x40240669 in ?? () from /usr/lib/libgtk-1.2.so.0
#7  0x80a0a35 in AP_UnixGnomeApp::main ()
#8  0x80a082b in main ()
#9  0x4051e9cb in ?? () from /lib/libc.so.6
(gdb)
I get similar results after attaching to a process using ddd.
And here's output from a ABI_OPT_DEBUG=1 build up until its death:
[...]
DEBUG: fb_LineBreaker.cpp:162 tab run: p=0x1 type=0 leader=27 height=0 
width=0 offset=1 length=140663096
DEBUG: tabstop: unknown tab stop type [L]
DEBUG: fb_LineBreaker.cpp:162 tab run: p=0x1 type=0 leader=27 height=0 
width=0 offset=1 length=140664728
DEBUG: tabstop: unknown tab stop type [L]
DEBUG: fb_LineBreaker.cpp:162 tab run: p=0x1 type=0 leader=27 height=0 
width=0 offset=1 length=140666400
DEBUG: tabstop: unknown tab stop type [L]
DEBUG: fb_LineBreaker.cpp:162 tab run: p=0x1 type=0 leader=27 height=0 
width=0 offset=1 length=140668032
DEBUG: tabstop: unknown tab stop type [L]
DEBUG: fb_LineBreaker.cpp:162 tab run: p=0x1 type=0 leader=27 height=0 
width=0 offset=1 length=140669752
DEBUG: tabstop: unknown tab stop type [L]
DEBUG: tabstop: unknown tab stop type [L]
DEBUG: Insertion Point has moved before erasing
DEBUG: fv_View::draw() called with zero drawing area.
DEBUG: fv_View::draw() called with zero drawing area.
DEBUG: fv_View::draw() called with zero drawing area.
DEBUG: ut_unixTimer.cpp:  timer destructor
DEBUG: ut_unixTimer.cpp:  timer destructor
DEBUG: ut_unixTimer.cpp:  timer destructor
I wish I had more time in my schedule and I'd do some poking about until 
I found out what was going on, but I don't, so I thought I'd send this 
info on.
-- David Schmitz Please allow me to introduce myself: I'm a man of wealth and taste. -- http://www.ecsd.com/~david
This archive was generated by hypermail 2b25 : Fri Oct 27 2000 - 02:54:08 CDT