Martti Kuparinen wrote:
> I had few minutes to debug this, so far I found this...
>
> # ldd vim
> ldd: vim: not dynamically linked
> # file vim
> vim: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically
> linked, for NetBSD 5.99.24, not stripped
> # gdb vim
>
> (gdb) break lalloc
>
> Breakpoint 1, lalloc (size=2, message=1) at misc2.c:837
> 837 if (size == 0)
> (gdb) c
> Continuing.
>
> Breakpoint 1, lalloc (size=28, message=1) at misc2.c:837
> 837 if (size == 0)
> (gdb) c
> Continuing.
>
> Breakpoint 1, lalloc (size=4, message=1) at misc2.c:837
> 837 if (size == 0)
> (gdb) c
> Continuing.
>
> Breakpoint 1, lalloc (size=0, message=1) at misc2.c:837
> 837 if (size == 0)
>
> (gdb) bt
> #0 lalloc (size=0, message=1) at misc2.c:837
> #1 0x080f5e63 in alloc (size=0) at misc2.c:767
> #2 0x08114963 in yank_copy_line (bd=0xbfbfe780, y_idx=0) at ops.c:3162
> #3 0x08114301 in op_yank (oap=0xbfbfeaf8, deleting=1, mess=0) at ops.c:2926
> #4 0x08112098 in op_delete (oap=0xbfbfeaf8) at ops.c:1725
> #5 0x08113c65 in op_change (oap=0xbfbfeaf8) at ops.c:2634
> #6 0x08104efe in do_pending_operator (cap=0xbfbfea4c, old_col=2147483647,
> gui_yank=0) at normal.c:1953
> #7 0x08103a6d in normal_cmd (oap=0xbfbfeaf8, toplevel=1) at normal.c:1214
> #8 0x080cfb0c in main_loop (cmdwin=0, noexmode=0) at main.c:1211
> #9 0x080cf6f3 in main (argc=2, argv=0xbfbfecac) at main.c:955
>
> (gdb) frame 2
> #2 0x08114963 in yank_copy_line (bd=0xbfbfe780, y_idx=0) at ops.c:3162
> 3162 if ((pnew = alloc(bd->startspaces + bd->endspaces + bd->textlen +
> 1))
> (gdb) p bd->startspaces
> $2 = -1
> (gdb) p bd->endspaces
> $3 = 0
> (gdb) p bd->textlen
> $4 = 0
You can get all with: print *bd
> What should I try next?
Apparently something goes wrong in block_prep(), just before calling
yank_copy_line(). If you can put a breakpoint in block_prep() and step
through it to find out why bdp->startspaces ends up being negative, and
textlen zero, that will help a lot. Look out for an overflow somewhere.
Perhaps in line 4966? Actually, knowing the values in oap will help:
print *oap
If these values look wrong, look at the code that sets them: about line
1660 in normal.c
--
Not too long ago, compress was something you did to garbage...
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php