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)