Mon 08 Oct 2007 07:43:00 PM UTC, comment #3:
Here you go:
#0 0x1002f4f0 in dofmt (fmt=0x100a3e08 "\n", app=0x7fd7c338)
at ../../display.c:318
c = <value optimized out>
the_width = -1
the_limit = -1
n = 269106672
islong = 0
int_value = <value optimized out>
long_value = <value optimized out>
outfunc = (OutFunc) 0x1002fba0 <bputc>
#1 0x1002f794 in b2vprintf (bp=0x100e7918,
fmt=0x100a3df0 "execute-named-command %s\n", ap=0x7fd7c378)
at ../../display.c:3953
save_curgoal = -1
result = <value optimized out>
save_wp = (vile_WINDOW *) 0x100e5278
save_bp = (BUFFER *) 0x0
save_w_traits = {w_dt = {l = 0x100e7d40, o = 0}, w_ld = {l = 0x0,
o = 0}, w_tld = {l = 0x0, o = 0}, w_ln = {l = 0x100e7d40, o = 0},
insmode = 0, w_vals = {wv = {{v = {i = 1,
p = 0x1 <Address 0x1 out of bounds>, r = 0x1}, vp = 0x100d10d8}, {
v = {i = 0, p = 0x0, r = 0x0}, vp = 0x100d10e0}, {v = {i = 0, p = 0x0,
r = 0x0}, vp = 0x100d10e8}, {v = {i = 0, p = 0x0, r = 0x0},
vp = 0x100d10f0}, {v = {i = 0, p = 0x0, r = 0x0}, vp = 0x100d10f8}, {
v = {i = 0, p = 0x0, r = 0x0}, vp = 0x100d1100}, {v = {i = 0, p = 0x0,
r = 0x0}, vp = 0x100d1108}, {v = {i = 0, p = 0x0, r = 0x0},
vp = 0x100d1110}, {v = {i = 1, p = 0x1 <Address 0x1 out of bounds>,
r = 0x1}, vp = 0x100d1118}, {v = {i = 0, p = 0x0, r = 0x0},
vp = 0x100d1120}, {v = {i = 0, p = 0x0, r = 0x0}, vp = 0x100d1128}}},
w_left_dot = {l = 0x0, o = 0}, w_left_col = 0, w_left_adj = 0,
w_list_opt = 0, w_num_cols = 0}
save_outfn = (OutFunc) 0x1002ed10 <lspputc>
#2 0x1002f980 in b2printf (bp=0x7fd7c218, fmt=0x1 <Address 0x1 out of bounds>)
at ../../display.c:3977
ap = {{gpr = 2 '\002', fpr = 0 '\0', reserved = 61428,
overflow_arg_area = 0x7fd7c3e8, reg_save_area = 0x7fd7c380}}
#3 0x1001e3c0 in setup_command (opts_bp=0x100e7918, param=0x7fd7d8af "1")
at ../../main.c:206
p1 = 0x7fd7d8b0 ""
p2 = 0x7fd7d8b0 ""
#4 0x1001ec48 in main (argc=3, argv=0x7fd7d714) at ../../main.c:495
param = 0x7fd7d8ae "+1"
tt_opened = 1
bp = (BUFFER *) 0x100e2bc0
carg = 1
vileinit = 0x0
startstat = <value optimized out>
havebp = (BUFFER *) 0x0
init_bp = (BUFFER *) 0x100e74f0
opts_bp = (BUFFER *) 0x100e7918
havename = 0x0
startkey = '\0' <repeats 19 times>
|
Sun 07 Oct 2007 10:32:40 PM UTC, comment #2:
valgrind doesn't seem to show me anything - though the call stack looks plausible. valgrind does show some leaks, e.g.,
==13460== 16 bytes in 1 blocks are indirectly lost in loss record 2 of 4
==13460== at 0x4024765: malloc (vg_replace_malloc.c:149)
==13460== by 0x808C77E: lalloc (line.c:90)
==13460== by 0x808E0C5: linsert (line.c:383)
==13460== by 0x8062ECD: bputc (display.c:3903)
==13460== by 0x8064FB0: dofmt (display.c:119)
==13460== by 0x8065265: b2vprintf (display.c:3953)
==13460== by 0x8065351: b2printf (display.c:3977)
==13460== by 0x80507BE: main (main.c:426)
I tried with/without "foo" being a new file or old, against "9.5r" built with memory-leak checking. If it were a new file,
I thought it possible that there was some boundary error.
The leak shown is for the case where vile is adding the
"goto-line" command to a temporary buffer, which is executed
later. I have a hunch this is in the right area, but it's
not breaking for me.
(my post-9.5r changes have all been in other areas, so I've
not fixed this yet as far as I know).
A walkback with debug trace would help - valgrind is even
better.
|