On 23 July 2014, Bram Moolenaar <[email protected]> wrote:
>
> Lcd wrote:
>
> > > >     Scenario:
> > > >
> > > > (1) set a loclist:
> > > >
> > > >         call setloclist(0, list)
> > > >
> > > > (2) at some point later replace the list:
> > > >
> > > >         call setloclist(0, other_list, 'r')
> > > >
> > > > (3) open the quickfix window
> > > >
> > > >         lopen
> > > >
> > > > (4) switch to the quickfix window and press Enter to jump to an
> > > > error:
> > > >
> > > >         .ll
> > > >
> > > >     The result is a read from free'd memory; valgrind trace
> > > > included below.  It's easy to make Vim crash from there, but the
> > > > stack trace doesn't reveal any additional information.
> > > >
> > > >     Sadly, this is not consistently reproducible.  I can trigger
> > > > it in syntastic, but I can't seem to get the same result in a
> > > > simple test file.
> > >
> > > I have sent out patch 7.4.379.  Can you check that this fixes the
> > > problem?
> >
> >     That was something I tried too, but it doesn't work; new
> > valgrind trace included below.
>
> What exactly are the arguments to ex_cc when this happens?

    I added some rudimentary tracing, patch attached.  The output is
this:

ex_cexpr(): arg = "err_lines", nextcmd = "NULL", *cmdlinep = "    lgetexpr 
err_lines", cmdidx = 216, argt = 0x994, skip = 0, forceit = 0, addr_count = 0, 
line1 = 9, line2 = 9, flags = 0x0, do_ecmd_cmd = "NULL", do_ecmd_lnum = 0, 
append = 0, usefilter = 0, amount = 0, regname = 0, force_bin = 0, read_edit = 
0, force_ff = 0, force_enc = 0, bad_char = 0, useridx = 0
get_errorlist()
set_errorlist(): action ' ', title = "setloclist()"
get_errorlist()
get_errorlist()
get_errorlist()
ex_cc(): arg = "", nextcmd = "NULL", *cmdlinep = ".ll", cmdidx = 220, argt = 
0x4503, skip = 0, forceit = 0, addr_count = 1, line1 = 1, line2 = 1, flags = 
0x0, do_ecmd_cmd = "NULL", do_ecmd_lnum = 0, append = 0, usefilter = 0, amount 
= 0, regname = 0, force_bin = 0, read_edit = 0, force_ff = 0, force_enc = 0, 
bad_char = 0, useridx = 0
set_errorlist(): action 'r', title = "setloclist()"
get_errorlist()
get_errorlist()

    I'm also attaching the corresponding valgrind log.

    Perhaps also relevant: steps (1)-(3) happen from a BufWritePost
autocmd, step (4) is done after the autocmd has finished.

> Without knowing that the number of possibilities is too big.

    Oh, I do realise it's an useless report.  I don't know how to make
it more useful.  Sorry about that.  However the bug appears to be real,
which is why I posted all this.

> Can you reproduce it with a fixed location list?  Otherwise I can't
> reproduce the problem.
[...]

    As I said, I can't reproduce the problem in a simpler setup.  As any
self-respecting Heisenbug, I can't even reproduce it in gdb.

    /lcd

-- 
-- 
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

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.
diff --git a/src/quickfix.c b/src/quickfix.c
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -2990,6 +2990,55 @@
 {
     qf_info_T  *qi = &ql_info;
 
+    fprintf(stderr,
+           "ex_cc(): "
+           "arg = \"%s\", "
+           "nextcmd = \"%s\", "
+           "*cmdlinep = \"%s\", "
+           "cmdidx = %u, "
+           "argt = 0x%lX, "
+           "skip = %d, "
+           "forceit = %d, "
+           "addr_count = %d, "
+           "line1 = %ld, "
+           "line2 = %ld, "
+           "flags = 0x%X, "
+           "do_ecmd_cmd = \"%s\", "
+           "do_ecmd_lnum = %ld, "
+           "append = %d, "
+           "usefilter = %d, "
+           "amount = %d, "
+           "regname = %d, "
+           "force_bin = %d, "
+           "read_edit = %d, "
+           "force_ff = %d, "
+           "force_enc = %d, "
+           "bad_char = %d, "
+           "useridx = %d\n",
+           (eap->arg ? (char *)eap->arg : "NULL"),
+           (eap->nextcmd ? (char *)eap->nextcmd : "NULL"),
+           (*eap->cmdlinep ? (char *)*eap->cmdlinep : "NULL"),
+           eap->cmdidx,
+           eap->argt,
+           eap->skip,
+           eap->forceit,
+           eap->addr_count,
+           eap->line1,
+           eap->line2,
+           eap->flags,
+           (eap->do_ecmd_cmd ? (char *)eap->do_ecmd_cmd : "NULL"),
+           eap->do_ecmd_lnum,
+           eap->append,
+           eap->usefilter,
+           eap->amount,
+           eap->regname,
+           eap->force_bin,
+           eap->read_edit,
+           eap->force_ff,
+           eap->force_enc,
+           eap->bad_char,
+           eap->useridx);
+
     if (eap->cmdidx == CMD_ll
            || eap->cmdidx == CMD_lrewind
            || eap->cmdidx == CMD_lfirst
@@ -3771,6 +3820,7 @@
     int                i;
     int                bufnum;
 
+    fprintf(stderr, "get_errorlist()\n");
     if (wp != NULL)
     {
        qi = GET_LOC_LIST(wp);
@@ -3839,6 +3889,8 @@
     qf_info_T  *qi = &ql_info;
     int                did_bufnr_emsg = FALSE;
 
+    fprintf(stderr, "set_errorlist(): action '%c', title = \"%s\"\n", 
(char)action, title ? (char *)title : "NULL");
+
     if (wp != NULL)
     {
        qi = ll_get_or_alloc_list(wp);
@@ -4015,6 +4067,55 @@
     typval_T   *tv;
     qf_info_T  *qi = &ql_info;
 
+    fprintf(stderr,
+           "ex_cexpr(): "
+           "arg = \"%s\", "
+           "nextcmd = \"%s\", "
+           "*cmdlinep = \"%s\", "
+           "cmdidx = %u, "
+           "argt = 0x%lX, "
+           "skip = %d, "
+           "forceit = %d, "
+           "addr_count = %d, "
+           "line1 = %ld, "
+           "line2 = %ld, "
+           "flags = 0x%X, "
+           "do_ecmd_cmd = \"%s\", "
+           "do_ecmd_lnum = %ld, "
+           "append = %d, "
+           "usefilter = %d, "
+           "amount = %d, "
+           "regname = %d, "
+           "force_bin = %d, "
+           "read_edit = %d, "
+           "force_ff = %d, "
+           "force_enc = %d, "
+           "bad_char = %d, "
+           "useridx = %d\n",
+           (eap->arg ? (char *)eap->arg : "NULL"),
+           (eap->nextcmd ? (char *)eap->nextcmd : "NULL"),
+           (*eap->cmdlinep ? (char *)*eap->cmdlinep : "NULL"),
+           eap->cmdidx,
+           eap->argt,
+           eap->skip,
+           eap->forceit,
+           eap->addr_count,
+           eap->line1,
+           eap->line2,
+           eap->flags,
+           (eap->do_ecmd_cmd ? (char *)eap->do_ecmd_cmd : "NULL"),
+           eap->do_ecmd_lnum,
+           eap->append,
+           eap->usefilter,
+           eap->amount,
+           eap->regname,
+           eap->force_bin,
+           eap->read_edit,
+           eap->force_ff,
+           eap->force_enc,
+           eap->bad_char,
+           eap->useridx);
+
     if (eap->cmdidx == CMD_lexpr || eap->cmdidx == CMD_lgetexpr
            || eap->cmdidx == CMD_laddexpr)
     {
==00:00:00:00.000 5316== Memcheck, a memory error detector
==00:00:00:00.000 5316== Copyright (C) 2002-2012, and GNU GPL'd, by Julian 
Seward et al.
==00:00:00:00.000 5316== Using Valgrind-3.8.1 and LibVEX; rerun with -h for 
copyright info
==00:00:00:00.000 5316== Command: ./vim Ejecta.js
==00:00:00:00.009 5316== Parent PID: 3789
==00:00:00:00.009 5316== 
==00:00:00:18.126 5316== Invalid read of size 4
==00:00:00:18.127 5316==    at 0x814C5FD: qf_jump (quickfix.c:1798)
==00:00:00:18.127 5316==    by 0x814EAF3: ex_cc (quickfix.c:3055)
==00:00:00:18.127 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.127 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.127 5316==    by 0x80A576C: do_cmdline_cmd (ex_docmd.c:731)
==00:00:00:18.127 5316==    by 0x8123D70: nv_down (normal.c:6106)
==00:00:00:18.127 5316==    by 0x811BD9B: normal_cmd (normal.c:1160)
==00:00:00:18.127 5316==    by 0x81F3EB7: main_loop (main.c:1326)
==00:00:00:18.127 5316==    by 0x81F3873: main (main.c:1026)
==00:00:00:18.127 5316==  Address 0x7cce054 is 12 bytes inside a block of size 
36 free'd
==00:00:00:18.127 5316==    at 0x402A17C: free (in 
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==00:00:00:18.127 5316==    by 0x810C416: vim_free (misc2.c:1740)
==00:00:00:18.127 5316==    by 0x814D1F4: qf_free (quickfix.c:2164)
==00:00:00:18.127 5316==    by 0x81502C6: set_errorlist (quickfix.c:3911)
==00:00:00:18.127 5316==    by 0x80879FC: set_qf_ll_list (eval.c:16825)
==00:00:00:18.127 5316==    by 0x8087A5F: f_setloclist (eval.c:16846)
==00:00:00:18.127 5316==    by 0x807D24D: call_func (eval.c:8596)
==00:00:00:18.127 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.127 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.127 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.127 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.127 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.127 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.127 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.127 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.127 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.127 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.127 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.127 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.127 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.127 5316== 
==00:00:00:18.129 5316== Invalid read of size 1
==00:00:00:18.129 5316==    at 0x814C60B: qf_jump (quickfix.c:1800)
==00:00:00:18.129 5316==    by 0x814EAF3: ex_cc (quickfix.c:3055)
==00:00:00:18.129 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.129 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.129 5316==    by 0x80A576C: do_cmdline_cmd (ex_docmd.c:731)
==00:00:00:18.129 5316==    by 0x8123D70: nv_down (normal.c:6106)
==00:00:00:18.129 5316==    by 0x811BD9B: normal_cmd (normal.c:1160)
==00:00:00:18.129 5316==    by 0x81F3EB7: main_loop (main.c:1326)
==00:00:00:18.129 5316==    by 0x81F3873: main (main.c:1026)
==00:00:00:18.129 5316==  Address 0x7cce06a is 34 bytes inside a block of size 
36 free'd
==00:00:00:18.129 5316==    at 0x402A17C: free (in 
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==00:00:00:18.129 5316==    by 0x810C416: vim_free (misc2.c:1740)
==00:00:00:18.129 5316==    by 0x814D1F4: qf_free (quickfix.c:2164)
==00:00:00:18.129 5316==    by 0x81502C6: set_errorlist (quickfix.c:3911)
==00:00:00:18.129 5316==    by 0x80879FC: set_qf_ll_list (eval.c:16825)
==00:00:00:18.129 5316==    by 0x8087A5F: f_setloclist (eval.c:16846)
==00:00:00:18.129 5316==    by 0x807D24D: call_func (eval.c:8596)
==00:00:00:18.129 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.129 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.129 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.129 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.129 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.129 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.129 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.129 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.129 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.129 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.129 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.129 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.129 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.129 5316== 
==00:00:00:18.132 5316== Invalid read of size 4
==00:00:00:18.132 5316==    at 0x814C69B: qf_jump (quickfix.c:1815)
==00:00:00:18.132 5316==    by 0x814EAF3: ex_cc (quickfix.c:3055)
==00:00:00:18.132 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.132 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.132 5316==    by 0x80A576C: do_cmdline_cmd (ex_docmd.c:731)
==00:00:00:18.132 5316==    by 0x8123D70: nv_down (normal.c:6106)
==00:00:00:18.132 5316==    by 0x811BD9B: normal_cmd (normal.c:1160)
==00:00:00:18.132 5316==    by 0x81F3EB7: main_loop (main.c:1326)
==00:00:00:18.132 5316==    by 0x81F3873: main (main.c:1026)
==00:00:00:18.132 5316==  Address 0x7cce054 is 12 bytes inside a block of size 
36 free'd
==00:00:00:18.132 5316==    at 0x402A17C: free (in 
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==00:00:00:18.132 5316==    by 0x810C416: vim_free (misc2.c:1740)
==00:00:00:18.132 5316==    by 0x814D1F4: qf_free (quickfix.c:2164)
==00:00:00:18.132 5316==    by 0x81502C6: set_errorlist (quickfix.c:3911)
==00:00:00:18.132 5316==    by 0x80879FC: set_qf_ll_list (eval.c:16825)
==00:00:00:18.132 5316==    by 0x8087A5F: f_setloclist (eval.c:16846)
==00:00:00:18.132 5316==    by 0x807D24D: call_func (eval.c:8596)
==00:00:00:18.132 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.132 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.132 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.132 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.132 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.132 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.132 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.132 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.132 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.132 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.132 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.132 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.132 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.132 5316== 
==00:00:00:18.135 5316== Invalid read of size 4
==00:00:00:18.135 5316==    at 0x814C6DF: qf_jump (quickfix.c:1825)
==00:00:00:18.135 5316==    by 0x814EAF3: ex_cc (quickfix.c:3055)
==00:00:00:18.135 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.135 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.135 5316==    by 0x80A576C: do_cmdline_cmd (ex_docmd.c:731)
==00:00:00:18.135 5316==    by 0x8123D70: nv_down (normal.c:6106)
==00:00:00:18.135 5316==    by 0x811BD9B: normal_cmd (normal.c:1160)
==00:00:00:18.135 5316==    by 0x81F3EB7: main_loop (main.c:1326)
==00:00:00:18.135 5316==    by 0x81F3873: main (main.c:1026)
==00:00:00:18.135 5316==  Address 0x7cce060 is 24 bytes inside a block of size 
36 free'd
==00:00:00:18.135 5316==    at 0x402A17C: free (in 
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==00:00:00:18.135 5316==    by 0x810C416: vim_free (misc2.c:1740)
==00:00:00:18.135 5316==    by 0x814D1F4: qf_free (quickfix.c:2164)
==00:00:00:18.135 5316==    by 0x81502C6: set_errorlist (quickfix.c:3911)
==00:00:00:18.135 5316==    by 0x80879FC: set_qf_ll_list (eval.c:16825)
==00:00:00:18.135 5316==    by 0x8087A5F: f_setloclist (eval.c:16846)
==00:00:00:18.135 5316==    by 0x807D24D: call_func (eval.c:8596)
==00:00:00:18.135 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.135 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.135 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.135 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.135 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.135 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.135 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.135 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.135 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.135 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.135 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.135 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.135 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.135 5316== 
==00:00:00:18.137 5316== Invalid read of size 4
==00:00:00:18.137 5316==    at 0x814C6ED: qf_jump (quickfix.c:1830)
==00:00:00:18.137 5316==    by 0x814EAF3: ex_cc (quickfix.c:3055)
==00:00:00:18.137 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.137 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.137 5316==    by 0x80A576C: do_cmdline_cmd (ex_docmd.c:731)
==00:00:00:18.137 5316==    by 0x8123D70: nv_down (normal.c:6106)
==00:00:00:18.137 5316==    by 0x811BD9B: normal_cmd (normal.c:1160)
==00:00:00:18.137 5316==    by 0x81F3EB7: main_loop (main.c:1326)
==00:00:00:18.137 5316==    by 0x81F3873: main (main.c:1026)
==00:00:00:18.137 5316==  Address 0x7cce050 is 8 bytes inside a block of size 
36 free'd
==00:00:00:18.137 5316==    at 0x402A17C: free (in 
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==00:00:00:18.137 5316==    by 0x810C416: vim_free (misc2.c:1740)
==00:00:00:18.137 5316==    by 0x814D1F4: qf_free (quickfix.c:2164)
==00:00:00:18.137 5316==    by 0x81502C6: set_errorlist (quickfix.c:3911)
==00:00:00:18.137 5316==    by 0x80879FC: set_qf_ll_list (eval.c:16825)
==00:00:00:18.137 5316==    by 0x8087A5F: f_setloclist (eval.c:16846)
==00:00:00:18.137 5316==    by 0x807D24D: call_func (eval.c:8596)
==00:00:00:18.137 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.137 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.137 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.138 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.138 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.138 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.138 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.138 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.138 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.138 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.138 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.138 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.138 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.138 5316== 
==00:00:00:18.140 5316== Invalid read of size 4
==00:00:00:18.140 5316==    at 0x814C71D: qf_jump (quickfix.c:1837)
==00:00:00:18.140 5316==    by 0x814EAF3: ex_cc (quickfix.c:3055)
==00:00:00:18.140 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.140 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.140 5316==    by 0x80A576C: do_cmdline_cmd (ex_docmd.c:731)
==00:00:00:18.140 5316==    by 0x8123D70: nv_down (normal.c:6106)
==00:00:00:18.140 5316==    by 0x811BD9B: normal_cmd (normal.c:1160)
==00:00:00:18.140 5316==    by 0x81F3EB7: main_loop (main.c:1326)
==00:00:00:18.140 5316==    by 0x81F3873: main (main.c:1026)
==00:00:00:18.140 5316==  Address 0x7cce058 is 16 bytes inside a block of size 
36 free'd
==00:00:00:18.140 5316==    at 0x402A17C: free (in 
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==00:00:00:18.140 5316==    by 0x810C416: vim_free (misc2.c:1740)
==00:00:00:18.140 5316==    by 0x814D1F4: qf_free (quickfix.c:2164)
==00:00:00:18.140 5316==    by 0x81502C6: set_errorlist (quickfix.c:3911)
==00:00:00:18.140 5316==    by 0x80879FC: set_qf_ll_list (eval.c:16825)
==00:00:00:18.140 5316==    by 0x8087A5F: f_setloclist (eval.c:16846)
==00:00:00:18.140 5316==    by 0x807D24D: call_func (eval.c:8596)
==00:00:00:18.140 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.140 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.140 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.140 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.140 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.140 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.140 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.140 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.140 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.140 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.140 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.140 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.140 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.140 5316== 
==00:00:00:18.143 5316== Invalid read of size 4
==00:00:00:18.143 5316==    at 0x814C730: qf_jump (quickfix.c:1839)
==00:00:00:18.143 5316==    by 0x814EAF3: ex_cc (quickfix.c:3055)
==00:00:00:18.143 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.143 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.143 5316==    by 0x80A576C: do_cmdline_cmd (ex_docmd.c:731)
==00:00:00:18.143 5316==    by 0x8123D70: nv_down (normal.c:6106)
==00:00:00:18.143 5316==    by 0x811BD9B: normal_cmd (normal.c:1160)
==00:00:00:18.143 5316==    by 0x81F3EB7: main_loop (main.c:1326)
==00:00:00:18.143 5316==    by 0x81F3873: main (main.c:1026)
==00:00:00:18.143 5316==  Address 0x7cce058 is 16 bytes inside a block of size 
36 free'd
==00:00:00:18.143 5316==    at 0x402A17C: free (in 
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==00:00:00:18.143 5316==    by 0x810C416: vim_free (misc2.c:1740)
==00:00:00:18.143 5316==    by 0x814D1F4: qf_free (quickfix.c:2164)
==00:00:00:18.143 5316==    by 0x81502C6: set_errorlist (quickfix.c:3911)
==00:00:00:18.143 5316==    by 0x80879FC: set_qf_ll_list (eval.c:16825)
==00:00:00:18.143 5316==    by 0x8087A5F: f_setloclist (eval.c:16846)
==00:00:00:18.143 5316==    by 0x807D24D: call_func (eval.c:8596)
==00:00:00:18.143 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.143 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.143 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.143 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.143 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.143 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.143 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.143 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.143 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.143 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.143 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.143 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.143 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.143 5316== 
==00:00:00:18.145 5316== Invalid read of size 1
==00:00:00:18.145 5316==    at 0x814C73A: qf_jump (quickfix.c:1840)
==00:00:00:18.145 5316==    by 0x814EAF3: ex_cc (quickfix.c:3055)
==00:00:00:18.145 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.145 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.145 5316==    by 0x80A576C: do_cmdline_cmd (ex_docmd.c:731)
==00:00:00:18.145 5316==    by 0x8123D70: nv_down (normal.c:6106)
==00:00:00:18.145 5316==    by 0x811BD9B: normal_cmd (normal.c:1160)
==00:00:00:18.145 5316==    by 0x81F3EB7: main_loop (main.c:1326)
==00:00:00:18.145 5316==    by 0x81F3873: main (main.c:1026)
==00:00:00:18.145 5316==  Address 0x7cce068 is 32 bytes inside a block of size 
36 free'd
==00:00:00:18.145 5316==    at 0x402A17C: free (in 
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==00:00:00:18.145 5316==    by 0x810C416: vim_free (misc2.c:1740)
==00:00:00:18.145 5316==    by 0x814D1F4: qf_free (quickfix.c:2164)
==00:00:00:18.145 5316==    by 0x81502C6: set_errorlist (quickfix.c:3911)
==00:00:00:18.145 5316==    by 0x80879FC: set_qf_ll_list (eval.c:16825)
==00:00:00:18.145 5316==    by 0x8087A5F: f_setloclist (eval.c:16846)
==00:00:00:18.145 5316==    by 0x807D24D: call_func (eval.c:8596)
==00:00:00:18.145 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.145 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.145 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.145 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.145 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.145 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.145 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.145 5316==    by 0x8076BB3: ex_call (eval.c:3487)
==00:00:00:18.145 5316==    by 0x80A83CB: do_one_cmd (ex_docmd.c:2701)
==00:00:00:18.145 5316==    by 0x80A5EE0: do_cmdline (ex_docmd.c:1126)
==00:00:00:18.145 5316==    by 0x8091F93: call_user_func (eval.c:23507)
==00:00:00:18.145 5316==    by 0x807D13C: call_func (eval.c:8567)
==00:00:00:18.145 5316==    by 0x807CD91: get_func_tv (eval.c:8403)
==00:00:00:18.145 5316== 
==00:00:00:25.150 5316== 
==00:00:00:25.152 5316== HEAP SUMMARY:
==00:00:00:25.152 5316==     in use at exit: 2,785,178 bytes in 66,996 blocks
==00:00:00:25.152 5316==   total heap usage: 486,059 allocs, 419,063 frees, 
214,651,592 bytes allocated
==00:00:00:25.152 5316== 
==00:00:00:25.241 5316== LEAK SUMMARY:
==00:00:00:25.241 5316==    definitely lost: 3,456 bytes in 6 blocks
==00:00:00:25.241 5316==    indirectly lost: 0 bytes in 0 blocks
==00:00:00:25.241 5316==      possibly lost: 1,188,419 bytes in 32,804 blocks
==00:00:00:25.241 5316==    still reachable: 1,593,303 bytes in 34,186 blocks
==00:00:00:25.241 5316==         suppressed: 0 bytes in 0 blocks
==00:00:00:25.241 5316== Rerun with --leak-check=full to see details of leaked 
memory
==00:00:00:25.241 5316== 
==00:00:00:25.241 5316== For counts of detected and suppressed errors, rerun 
with: -v
==00:00:00:25.241 5316== ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 
from 0)

Raspunde prin e-mail lui