severity 330782 grave
tags 330782 + help
thankyou

(bumping the severity up to grave because of possible data loss)

Ok, this one has been lying around for far too long. If anyone feels like
diving into ancient sourcecode, I'd highly appreciate that. Here's a
little teaser:

=====
Core was generated by `./vi_O0g3'.
Program terminated with signal 11, Segmentation fault.
[New process 16692]
(gdb) bt 5
#0  0xb7e588e8 in vfprintf () from /lib/libc.so.6
#1  0xb7e7eab4 in vsnprintf () from /lib/libc.so.6
#2  0xb7e621e2 in snprintf () from /lib/libc.so.6
#3  0x080a4e4d in vs_line (sp=0x80bead8, smp=0x81726b8, yp=0xbf6b2b34, 
    xp=0x80bf698) at ../dist/../vi/vs_line.c:141
#4  0x08072665 in vs_paint (sp=0x80bead8, flags=3)
    at ../dist/../vi/vs_refresh.c:641
(More stack frames follow...)
(gdb) bt -10
#27558 0x08072759 in vs_paint (sp=0x80bead8, flags=3)
    at ../dist/../vi/vs_refresh.c:673
#27559 0x08072759 in vs_paint (sp=0x80bead8, flags=3)
    at ../dist/../vi/vs_refresh.c:673
#27560 0x08072759 in vs_paint (sp=0x80bead8, flags=3)
    at ../dist/../vi/vs_refresh.c:673
#27561 0x08072759 in vs_paint (sp=0x80bead8, flags=3)
    at ../dist/../vi/vs_refresh.c:673
#27562 0x08070eda in vs_refresh (sp=0x80bead8, forcepaint=0)
    at ../dist/../vi/vs_refresh.c:95
#27563 0x0809fd39 in v_txt (sp=0x80bead8, vp=0xbfeb026c, tm=0x0, lp=0x814ad28, 
    len=8, prompt=0, ai_line=0, rcount=1, flags=75793408)
    at ../dist/../vi/v_txt.c:1427
#27564 0x080975ed in v_ii (sp=0x80bead8, vp=0xbfeb026c)
    at ../dist/../vi/v_itxt.c:164
#27565 0x0806ccde in vi (spp=0xbfeb0498) at ../dist/../vi/vi.c:232
#27566 0x08060776 in editor (wp=0x80bd820, argc=0, argv=0xbfeb0618)
    at ../dist/../common/main.c:410
#27567 0x0804c354 in main (argc=1, argv=0xbfeb0614)
    at ../dist/../cl/cl_main.c:122
(gdb) list ../dist/../vi/vs_refresh.c:660,680
660              * Sanity checking.  When the repainting code messes up, the 
usual
661              * result is we don't repaint the cursor and so sc_smap will be
662              * NULL.  If we're debugging, die, otherwise restart from 
scratch.
663              */
664     #ifdef DEBUG
665             if (vip->sc_smap == NULL) {
666                     fprintf(stderr, "smap error\n");
667                     sleep(100);
668                     abort();
669             }
670     #else
671             if (vip->sc_smap == NULL) {
672                     F_SET(sp, SC_SCR_REFORMAT);
673                     return (vs_paint(sp, flags));
674             }
675     #endif
676
677             /*
678              * 9: Set the remembered cursor values.
679              */
680             OCNO = CNO;
=====
[i.e. the code already *knows* that is has messed up big time. I'm just
having problems figuring out that tiny side-effect of having the
'set number' setting activated which triggers the bug.]

If the new (development branch) package has not yet entered the archive,
it would be best if you used this[1] package for debugging, although I
guess the bug hasn't changed between 1.79 and 1.81.

I'll still try my best, too, but Lenny is drawing near.


Thanks,

Jan

[1]: http://www-pool.math.tu-berlin.de/~hesso/deb/nvi_1.81.6+debian-1.dsc

Attachment: signature.asc
Description: Digital signature

Reply via email to