Hi, I just spent some time hunting done a segfault that was cropping up recently for me, and I have narrowed it down to some python threading that the clang_complete plugin is doing. I have attached a minimal vimrc that is needed to make the bug appear, the two stripped-down plugin files (just put them into ~/.vim/plugin), a gdb backtrace log and my version information (it's the newest one with all patches applied).
The segfault happens in the vim.eval(getline()) call in libclang.py. The comment above refers to a short sleep being necessary for vim to initialize itself, and indeed it seems to be timing related: the bug only appears with larger cpp files, and if I increase the sleep time the bug disappears. Here is a pretty large cpp file to test it with: https://hg.mozilla.org/mozilla-central/raw-file/4b24c5ab84cb/js/src/jstracer.cpp Unfortunately I don't really know enough about the vim internals to fix it myself, but maybe it's actually not as complicated as it looks. Cheers, Jan -- -[ OpenPGP key ID: 00A0FD5F ]- People disagreeing everywhere you look, makes you wanna stop and read a book. -- Bob Dylan -- 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
syntax enable set foldmethod=syntax
au FileType c,cpp,objc,objcpp call <SID>InitClangCompletePython() let s:plugin_path = escape(expand('<sfile>:p:h'), '\') function! s:InitClangCompletePython() exe 'pyfile ' . s:plugin_path . '/libclang.py' python WarmupCache() endfunction
import vim import time import threading class CompleteThread(threading.Thread): lock = threading.Lock() def __init__(self): threading.Thread.__init__(self) def run(self): try: CompleteThread.lock.acquire() # Warm up the caches. For this it is sufficient to get the current # translation unit. No need to retrieve completion results. # This short pause is necessary to allow vim to initialize itself. # Otherwise we would get: E293: block was not locked # The user does not see any delay, as we just pause a background thread. time.sleep(0.1) file = "\n".join(vim.eval("getline(1, '$')")) except Exception: pass CompleteThread.lock.release() def WarmupCache(): t = CompleteThread() t.start() return
#0 0x0813089a in vim_strsave (string=0x5b960c1b <Address 0x5b960c1b out of bounds>) at misc2.c:1248 p = 0x83c9f58 " * Tomi Leppikangas <tomi.leppikan...@oulu.fi>" len = 3079624484 #1 0x0809e885 in list_append_string (l=0x83e7a28, str=0x5b960c1b <Address 0x5b960c1b out of bounds>, len=-1) at eval.c:6341 li = 0x83c9f90 #2 0x080a42a5 in get_buffer_lines (buf=0x8299c30, start=29, end=6873, retlist=1, rettv=0x8403c28) at eval.c:10854 p = 0x1ad9 <Address 0x1ad9 out of bounds> #3 0x080a4cbd in f_getline (argvars=0xb78f55b8, rettv=0x8403c28) at eval.c:11365 lnum = 1 end = 6873 retlist = 1 #4 0x080a0cad in call_func (funcname=0xb7917e94 "getline(1, '$')", len=7, rettv=0x8403c28, argcount=2, argvars=0xb78f55b8, firstline=1, lastline=1, doesrange=0xb78f5724, evaluate=1, selfdict=0x0) at eval.c:8386 ret = 0 error = 0 i = 88 llen = 0 fp = 0x69 fname_buf = "\000\000\000\000\000\000\001\000\000\fW\217\267xU\217\267\342\264\t\b\264V\217\267\304U\217\267\001\000\000\000\000\000\000\000\000\000\000" fname = 0x8430f40 "getline" name = 0x8430f40 "getline" #5 0x080a07e8 in get_func_tv (name=0xb7917e94 "getline(1, '$')", len=7, rettv=0x8403c28, arg= 0xb78f5a48, firstline=1, lastline=1, doesrange=0xb78f5724, evaluate=1, selfdict=0x0) at eval.c:8199 argp = 0xb7917ea3 "" ret = 1 argvars = {[0] = { v_type = 1 '\001', v_lock = 0 '\000', vval = { v_number = 1, v_float = 4.9406564584124654e-324, v_string = 0x1 <Address 0x1 out of bounds>, v_list = 0x1, v_dict = 0x1 } }, [1] = { v_type = 2 '\002', v_lock = 0 '\000', vval = { v_number = 138427368, v_float = 6.8392206973023905e-316, v_string = 0x8403be8 "$", v_list = 0x8403be8, v_dict = 0x8403be8 } }, [2] = { v_type = 0 '\000', v_lock = 0 '\000', vval = { v_number = 0, v_float = 0, v_string = 0x0, v_list = 0x0, v_dict = 0x0 } }, [3] = { v_type = 0 '\000', v_lock = 0 '\000', vval = { v_number = 0, v_float = 0, v_string = 0x0, v_list = 0x0, v_dict = 0x0 } }, [4] = { v_type = 0 '\000', v_lock = 0 '\000', vval = { v_number = 0, v_float = 4.2529570768294997e-269, v_string = 0x0, v_list = 0x0, v_dict = 0x0 } }, [5] = { v_type = 4 '\004', v_lock = 0 '\000', vval = { v_number = 0, v_float = 0, v_string = 0x0, v_list = 0x0, v_dict = 0x0 } }, [6] = { v_type = -101 '\233', v_lock = 126 '~', vval = { v_number = -445254428, v_float = -4.496576056022351e-41, v_string = 0xe575f4e4 <Address 0xe575f4e4 out of bounds>, v_list = 0xe575f4e4, v_dict = 0xe575f4e4 } }, [7] = { v_type = 110 'n', v_lock = 61 '=', vval = { v_number = 137787296, v_float = -5.020659859621984e-41, v_string = 0x83677a0 "\017", v_list = 0x83677a0, v_dict = 0x83677a0 } }, [8] = { v_type = -28 '\344', v_lock = -12 '\364', vval = { v_number = 0, v_float = 0, v_string = 0x0, v_list = 0x0, v_dict = 0x0 } }, [9] = { v_type = 0 '\000', v_lock = 0 '\000', vval = { v_number = -1215343016, v_float = 6.3873254592715862e-270, v_string = 0xb78f5658 "\210V\217\267\325\375\n\b\240w6\b\224~\221\267", v_list = 0xb78f5658, v_dict = 0xb78f5658 } }, [10] = { v_type = -96 '\240', v_lock = 119 'w', vval = { v_number = -1215201644, v_float = -4.496645728434629e-41, v_string = 0xb7917e94 "getline(1, '$')", v_list = 0xb7917e94, v_dict = 0xb7917e94 } }, [11] = { v_type = -25 '\347', v_lock = -17 '\357', vval = { v_number = 0, v_float = -5.020690372540882e-41, v_string = 0x0, v_list = 0x0, v_dict = 0x0 } }, [12] = { v_type = 120 'x', v_lock = 86 'V', vval = { v_number = 137787352, v_float = -5.0206905130259482e-41, v_string = 0x83677d8 "", v_list = 0x83677d8, v_dict = 0x83677d8 } }, [13] = { v_type = 0 '\000', v_lock = 0 '\000', vval = { v_number = -1215342968, v_float = 6.3864806283037218e-270, v_string = 0xb78f5688 "\310V\217\267g\006\n\b\224~\221\267", v_list = 0xb78f5688, v_dict = 0xb78f5688 } }, [14] = { v_type = -96 '\240', v_lock = 119 'w', vval = { v_number = -1215201644, v_float = 1.5216064058950678e-314, v_string = 0xb7917e94 "getline(1, '$')", v_list = 0xb7917e94, v_dict = 0xb7917e94 } }, [15] = { v_type = -101 '\233', v_lock = 126 '~', vval = { v_number = -1215096768, v_float = 1.521658221523741e-314, v_string = 0xb7931840 "X\rJ\266\310\302\221\267l\236\367\267A|\353\345\260Ƒ\267\020њ\267", v_list = 0xb7931840, v_dict = 0xb7931840 } }, [16] = { v_type = -108 '\224', v_lock = 126 '~', vval = { v_number = 137787296, v_float = -4.4988863061881338e-41, v_string = 0x83677a0 "\017", v_list = 0x83677a0, v_dict = 0x83677a0 } }, [17] = { v_type = -80 '\260', v_lock = 86 'V', vval = { v_number = -1215342904, v_float = 6.1577913839917156e-270, v_string = 0xb78f56c8 "XW\217\267*\315\t\b\224~\221\267\a", v_list = 0xb78f56c8, v_dict = 0xb78f56c8 } }, [18] = { v_type = -108 '\224', v_lock = 126 '~', vval = { v_number = 0, v_float = -3.5651173228947894e-47, v_string = 0x0, v_list = 0x0, v_dict = 0x0 } }, [19] = { v_type = -66 '\276', v_lock = 71 'G', vval = { v_number = -1215096796, v_float = -5.0971212067674375e-41, v_string = 0xb7931824 "\001", v_list = 0xb7931824, v_dict = 0xb7931824 } }, [20] = { v_type = 88 'X', v_lock = 13 '\r', vval = { v_number = 0, v_float = 0, v_string = 0x0, v_list = 0x0, v_dict = 0x0 } }} argcount = 2 #6 0x0809cd2a in eval7 (arg=0xb78f5a48, rettv=0x8403c28, evaluate=1, want_string=0) at eval.c:5134 n = 0 len = 0 s = 0xb7917e94 "getline(1, '$')" start_leader = 0xb7917e94 "getline(1, '$')" end_leader = 0xb7917e94 "getline(1, '$')" ret = 2 alias = 0x0 #7 0x0809c64a in eval6 (arg=0xb78f5a48, rettv=0x8403c28, evaluate=1, want_string=0) at eval.c:4786 var2 = { v_type = -52 '\314', v_lock = 14 '\016', vval = { v_number = -1208511956, v_float = -6.9980876777226396e-41, v_string = 0xb7f7922c "PM&", v_list = 0xb7f7922c, v_dict = 0xb7f7922c } } op = 127 n1 = -1210055019 n2 = -1208511956 use_float = 0 f1 = 0 f2 = 9.9461758994834062e+75 error = 0 #8 0x0809c2d1 in eval5 (arg=0xb78f5a48, rettv=0x8403c28, evaluate=1) at eval.c:4602 var2 = { v_type = -128 '\200', v_lock = 39 '\'', vval = { v_number = -1215342004, v_float = 1.5215370588410175e-314, v_string = 0xb78f5a4c "\033-\342\267\370;@\b,p\005\b\210Z\217\267Vt\t\b\224~\221\267(<@\b", v_list = 0xb78f5a4c, v_dict = 0xb78f5a4c } } var3 = { v_type = 76 'L', v_lock = 90 'Z', vval = { v_number = 0, v_float = -5.2386667277243083e-41, v_string = 0x0, v_list = 0x0, v_dict = 0x0 } } op = -1215342068 n1 = -1210046738 n2 = -1215151860 f1 = 0 f2 = 0 s1 = 0x100 <Address 0x100 out of bounds> s2 = 0xb78f588c "" buf1 = "\217\267\335\063\266O\200b\230\267,\222\367\267,\222\367\267\377\377\377\377,˗\267,\222", <incomplete sequence \367\267> buf2 = "\364')\b\031\000\000\000܇ط\300\263\304O\200~\221\267\300\263\304Ohu>\b\254X" p = 0xb78f598c "" #9 0x0809b95e in eval4 (arg=0xb78f5a48, rettv=0x8403c28, evaluate=1) at eval.c:4295 var2 = { v_type = -120 '\210', v_lock = -110 '\222', vval = { v_number = 1336859128, v_float = -4.4983088818457235e-41, v_string = 0x4faed9f8 "symbol=%s; lookup in file=%s [%lu]\n", v_list = 0x4faed9f8, v_dict = 0x4faed9f8 } } p = 0x2c92cc5c <Address 0x2c92cc5c out of bounds> i = -1210975512 type = TYPE_UNKNOWN type_is = 0 len = 2 n1 = 419 n2 = -1211053596 s1 = 0xb7d1acb8 "\332\004" s2 = 0x1c <Address 0x1c out of bounds> buf1 = "\255Ot\235\257O\354\311з\305\343\200\033\021\000\000\000\070\000\000\000\000\000\000\000\000\000\000" buf2 = '\000' <repeats 12 times>"\364, \017\257O\374~ѷ\020\000\000\000tY\217\267\245", <incomplete sequence \341> regmatch = { regprog = 0x4faf9d74, startp = {[0] = 0xd696910 <Address 0xd696910 out of bounds>, [1] = 0x0, [2] = 0x4faddb73 "\266", [3] = 0x1 <Address 0x1 out of bounds>, [4] = 0x0, [5] = 0x2 <Address 0x2 out of bounds>, [6] = 0x823da19 "s", [7] = 0xb792410c "\001", [8] = 0xb7e9fe24 "too many tuple nesting levels in argument format string", [9] = 0x823da1a ""}, endp = {[0] = 0xb7d26680 "libc.so.6", [1] = 0xb7d1acb8 "\332\004", [2] = 0xb78f5940 "", [3] = 0xb78f58f4 "tY\217\267\245\341\255Ot\235\257O\354\311з\305\343\200\033\021", [4] = 0x4faddb54 "\205\300\017\204x\377\377\377\061\366\353͋A\b\205\300u\365\205\377u\361f\203", <incomplete sequence \344>, [5] = 0xb7d1ffc2 "PyEval_SaveThread", [6] = 0x8063e73 "PyEval_SaveThread", [7] = 0xb7e02780 "\017\266T$<\017\266ʋ", [8] = 0x5 <Address 0x5 out of bounds>, [9] = 0x843f224 ""}, rm_ic = 0 } ic = 5 save_cpo = 0xb7d13000 "" #10 0x0809b7ef in eval3 (arg=0xb78f5a48, rettv=0x8403c28, evaluate=1) at eval.c:4207 var2 = { v_type = 0 '\000', v_lock = 0 '\000', vval = { v_number = 0, v_float = 1.0609978954826362e-313, v_string = 0x0, v_list = 0x0, v_dict = 0x0 } } result = 1 first = 0 error = 0 #11 0x0809b691 in eval2 (arg=0xb78f5a48, rettv=0x8403c28, evaluate=1) at eval.c:4136 var2 = { v_type = 36 '$', v_lock = 90 'Z', vval = { v_number = 1338291136, v_float = 7.0329634236112164e+75, v_string = 0x4fc4b3c0 "", v_list = 0x4fc4b3c0, v_dict = 0x4fc4b3c0 } } result = 1338286068 first = 0 error = 0 #12 0x0809b4e2 in eval1 (arg=0xb78f5a48, rettv=0x8403c28, evaluate=1) at eval.c:4061 result = -1208113064 var2 = { v_type = 12 '\f', v_lock = 0 '\000', vval = { v_number = -1214678880, v_float = -8.1158212628771245e-40, v_string = 0xb79978a0 "\006", v_list = 0xb79978a0, v_dict = 0xb79978a0 } } #13 0x0809b44e in eval0 (arg=0xb7917e94 "getline(1, '$')", rettv=0x8403c28, nextcmd=0x0, evaluate=1) at eval.c:4018 ret = -1209914085 p = 0xb7917e9b "(1, '$')" #14 0x08097456 in eval_expr (arg=0xb7917e94 "getline(1, '$')", nextcmd=0x0) at eval.c:1544 tv = 0x8403c28 #15 0x08202754 in VimEval (self=0x0, args=("getline(1, '$')",)) at if_py_both.h:412 _save = 0x8404708 expr = 0xb7917e94 "getline(1, '$')" our_tv = 0x0 result = <type at remote 0x843cb6c> lookup_dict = 0x0 #16 0xb7d8840e in PyCFunction_Call (func=<built-in function eval>, arg=("getline(1, '$')",), kw=0x0) at ../Objects/methodobject.c:116 f = 0xb791878c meth = 0x8202706 <VimEval at if_py_both.h:400> self = <optimized out> size = <optimized out> #17 0xb7dedae7 in call_function (oparg=<optimized out>, pp_stack=0xb78f5bc4) at ../Python/ceval.c:4021 callargs = ("getline(1, '$')",) flags = 1 tstate = <optimized out> func = <built-in function eval> w = <optimized out> na = 138430216 nk = <optimized out> n = -1215151860 pfunc = 0x8422198 x = <optimized out> #18 PyEval_EvalFrameEx (f= Frame 0x8422054, for file /home/jan/.vim/plugin/libclang.py, line 20, in run (self=<CompleteThread(_Thread__ident=-1215337616, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad120>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad120>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad120>) at remote 0xb7920fcc>, _Thread__name='Thread-1', _Thread__daemonic=False, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad110>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad110>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad110>) at remote 0xb7920e8c>) at remote 0xb7918dac>, _Thread__stderr=<message at remote 0x8285984>, _Thread__target=None, _Thread__kwargs={}, _Verbose__verbose=False, _Thread__args=(), _Thread_...(truncated), throwflag=0) at ../Python/ceval.c:2666 sp = 0x842219c stack_pointer = <optimized out> next_instr = 0xb7906223 "\203\001" opcode = <optimized out> oparg = <optimized out> why = WHY_NOT err = 0 x = (<unknown at remote 0x5>, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, <unknown at remote 0x1>, <unknown at remote 0x1>, 0x0, <unknown at remote 0xb78f6b70>, <unknown at remote 0x449>, <unknown at remote 0x1>, <type at remote 0xb7f8b340>, <unknown at remote 0x42c>, <unknown at remote 0xffffffff>, 0x0, <unknown at remote 0x61745320>, <unknown at remote 0x7261646e>, <unknown at remote 0x65222064>, <unknown at remote 0x646f636e>, <unknown at remote 0x73676e69>, <unknown at remote 0x61502022>, <unknown at remote 0x67616b63>, <unknown at remote 0x200a0a65>, <unknown at remote 0x53202020>, <unknown at remote 0x646e6174>, <unknown at remote 0x20647261>, <unknown at remote 0x68747950>, <unknown at remote 0x65206e6f>, <unknown at remote 0x646f636e>, <unknown at remote 0x20676e69>, <unknown at remote 0x75646f6d>, <unknown at remote 0x2073656c>, <unknown at remote 0x20657261>, <unknown at remote 0x726f7473>, <unknown at remote 0x69206465>, <unknown at remote 0x6874206e>, <unknown at remote 0x70207369...(truncated) v = <optimized out> w = <optimized out> u = <optimized out> t = <optimized out> stream = 0x0 fastlocals = 0x842218c freevars = 0x8422194 retval = 0x0 tstate = 0x8404708 co = 0xb7975c38 instr_ub = -1 instr_lb = 0 instr_prev = -1 first_instr = 0xb79061f4 "y6" names = ('CompleteThread', 'lock', 'acquire', 'time', 'sleep', 'join', 'vim', 'eval', 'Exception', 'release') consts = (None, <float at remote 0x83b0ecc>, '\n', "getline(1, '$')") #19 0xb7dee9ed in fast_function (nk=<optimized out>, na=138622516, n=1, pp_stack=0xb78f5cb4, func= <function at remote 0xb7915a04>) at ../Python/ceval.c:4107 retval = 0x0 i = <optimized out> fastlocals = 0x842218c f = Frame 0x8422054, for file /home/jan/.vim/plugin/libclang.py, line 20, in run (self=<CompleteThread(_Thread__ident=-1215337616, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad120>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad120>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad120>) at remote 0xb7920fcc>, _Thread__name='Thread-1', _Thread__daemonic=False, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad110>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad110>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad110>) at remote 0xb7920e8c>) at remote 0xb7918dac>, _Thread__stderr=<message at remote 0x8285984>, _Thread__target=None, _Thread__kwargs={}, _Verbose__verbose=False, _Thread__args=(), _Thread_...(truncated) tstate = <optimized out> stack = <optimized out> co = <optimized out> nd = 0 globals = (<unknown at remote 0x5>, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, <unknown at remote 0x1>, <unknown at remote 0x1>, 0x0, <unknown at remote 0xb78f6b70>, <unknown at remote 0x449>, <unknown at remote 0x1>, <type at remote 0xb7f8b340>, <unknown at remote 0x42c>, <unknown at remote 0xffffffff>, 0x0, <unknown at remote 0x61745320>, <unknown at remote 0x7261646e>, <unknown at remote 0x65222064>, <unknown at remote 0x646f636e>, <unknown at remote 0x73676e69>, <unknown at remote 0x61502022>, <unknown at remote 0x67616b63>, <unknown at remote 0x200a0a65>, <unknown at remote 0x53202020>, <unknown at remote 0x646e6174>, <unknown at remote 0x20647261>, <unknown at remote 0x68747950>, <unknown at remote 0x65206e6f>, <unknown at remote 0x646f636e>, <unknown at remote 0x20676e69>, <unknown at remote 0x75646f6d>, <unknown at remote 0x2073656c>, <unknown at remote 0x20657261>, <unknown at remote 0x726f7473>, <unknown at remote 0x69206465>, <unknown at remote 0x6874206e>, <unknown at remote 0x70207369...(truncated) argdefs = <optimized out> d = 0x0 #20 call_function (oparg=<optimized out>, pp_stack=0xb78f5cb4) at ../Python/ceval.c:4042 func = <function at remote 0xb7915a04> w = <optimized out> na = 138622516 nk = <optimized out> n = 1 pfunc = 0x8433634 x = <optimized out> #21 PyEval_EvalFrameEx (f= Frame 0x84334ec, for file /usr/lib/python2.7/threading.py, line 552, in __bootstrap_inner (self=<CompleteThread(_Thread__ident=-1215337616, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad120>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad120>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad120>) at remote 0xb7920fcc>, _Thread__name='Thread-1', _Thread__daemonic=False, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad110>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad110>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad110>) at remote 0xb7920e8c>) at remote 0xb7918dac>, _Thread__stderr=<message at remote 0x8285984>, _Thread__target=None, _Thread__kwargs={}, _Verbose__verbose=False, _Thread__args...(truncated), throwflag=0) at ../Python/ceval.c:2666 sp = 0x8433638 stack_pointer = <optimized out> next_instr = 0x8433bb2 "\001Wn\a\001\004t\016" opcode = <optimized out> oparg = <optimized out> why = WHY_NOT err = 0 x = <unknown at remote 0x8433634> v = <optimized out> w = <optimized out> u = <optimized out> t = <optimized out> stream = 0x0 fastlocals = 0x8433624 freevars = 0x8433634 retval = 0x0 tstate = 0x8404708 co = 0xb791e890 instr_ub = -1 instr_lb = 0 instr_prev = -1 first_instr = 0x8433b0c "z\322\001|" names = ('_set_ident', '_Thread__started', 'set', '_active_limbo_lock', '_active', '_Thread__ident', '_limbo', '_note', '_trace_hook', '_sys', 'settrace', '_profile_hook', 'setprofile', 'run', 'SystemExit', 'stderr', 'write', 'name', '_format_exc', '_Thread__exc_info', '_Thread__stderr', 'tb_frame', 'f_code', 'co_filename', 'tb_lineno', 'co_name', 'tb_next', '_Thread__exc_clear', '_Thread__stop', '_get_ident') consts = (None, '%s.__bootstrap(): thread started', '%s.__bootstrap(): registering trace hook', '%s.__bootstrap(): registering profile hook', '%s.__bootstrap(): raised SystemExit', '%s.__bootstrap(): unhandled exception', 'Exception in thread %s:\n%s\n', 'Exception in thread ', ' (most likely raised during interpreter shutdown):', 'Traceback (most recent call last):', ' File "%s", line %s, in %s', '%s: %s', '%s.__bootstrap(): normal return') #22 0xb7dee9ed in fast_function (nk=<optimized out>, na=138622152, n=1, pp_stack=0xb78f5da4, func= <function at remote 0xb792fd4c>) at ../Python/ceval.c:4107 retval = 0x0 i = <optimized out> fastlocals = 0x8433624 f = Frame 0x84334ec, for file /usr/lib/python2.7/threading.py, line 552, in __bootstrap_inner (self=<CompleteThread(_Thread__ident=-1215337616, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad120>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad120>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad120>) at remote 0xb7920fcc>, _Thread__name='Thread-1', _Thread__daemonic=False, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad110>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad110>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad110>) at remote 0xb7920e8c>) at remote 0xb7918dac>, _Thread__stderr=<message at remote 0x8285984>, _Thread__target=None, _Thread__kwargs={}, _Verbose__verbose=False, _Thread__args...(truncated) tstate = <optimized out> stack = <optimized out> co = <optimized out> nd = 0 globals = (<unknown at remote 0x5>, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, <unknown at remote 0x1>, <unknown at remote 0x1>, 0x0, <unknown at remote 0xb78f6b70>, <unknown at remote 0x449>, <unknown at remote 0x1>, <type at remote 0xb7f8b340>, <unknown at remote 0x42c>, <unknown at remote 0xffffffff>, 0x0, <unknown at remote 0x61745320>, <unknown at remote 0x7261646e>, <unknown at remote 0x65222064>, <unknown at remote 0x646f636e>, <unknown at remote 0x73676e69>, <unknown at remote 0x61502022>, <unknown at remote 0x67616b63>, <unknown at remote 0x200a0a65>, <unknown at remote 0x53202020>, <unknown at remote 0x646e6174>, <unknown at remote 0x20647261>, <unknown at remote 0x68747950>, <unknown at remote 0x65206e6f>, <unknown at remote 0x646f636e>, <unknown at remote 0x20676e69>, <unknown at remote 0x75646f6d>, <unknown at remote 0x2073656c>, <unknown at remote 0x20657261>, <unknown at remote 0x726f7473>, <unknown at remote 0x69206465>, <unknown at remote 0x6874206e>, <unknown at remote 0x70207369...(truncated) argdefs = <optimized out> d = 0x0 #23 call_function (oparg=<optimized out>, pp_stack=0xb78f5da4) at ../Python/ceval.c:4042 func = <function at remote 0xb792fd4c> w = <optimized out> na = 138622152 nk = <optimized out> n = 1 pfunc = 0x84334c8 x = <optimized out> #24 PyEval_EvalFrameEx (f= Frame 0x843338c, for file /usr/lib/python2.7/threading.py, line 525, in __bootstrap (self=<CompleteThread(_Thread__ident=-1215337616, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad120>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad120>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad120>) at remote 0xb7920fcc>, _Thread__name='Thread-1', _Thread__daemonic=False, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad110>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad110>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad110>) at remote 0xb7920e8c>) at remote 0xb7918dac>, _Thread__stderr=<message at remote 0x8285984>, _Thread__target=None, _Thread__kwargs={}, _Verbose__verbose=False, _Thread__args=(), _...(truncated), throwflag=0) at ../Python/ceval.c:2666 sp = 0x84334cc stack_pointer = <optimized out> next_instr = 0xb796bd60 "\001Wn#" opcode = <optimized out> oparg = <optimized out> why = WHY_NOT err = 0 x = <unknown at remote 0x84334c8> v = <optimized out> w = <optimized out> u = <optimized out> t = <optimized out> stream = 0x0 fastlocals = 0x84334c4 freevars = 0x84334c8 retval = 0x0 tstate = 0x8404708 co = 0xb791e7b8 instr_ub = -1 instr_lb = 0 instr_prev = -1 first_instr = 0xb796bd54 "y\016" names = ('_Thread__bootstrap_inner', '_Thread__daemonic', '_sys', 'None') consts = (None,) #25 0xb7defb54 in PyEval_EvalCodeEx (co=0xb791e7b8, globals= {'current_thread': <function at remote 0xb7930224>, '_BoundedSemaphore': <type at remote 0x843c994>, 'currentThread': <function at remote 0xb7930224>, '_Timer': <type at remote 0x843d304>, '_format_exc': <function at remote 0xb796a4c4>, 'Semaphore': <function at remote 0xb792f534>, 'activeCount': <function at remote 0xb7930304>, '_profile_hook': None, '_sleep': <built-in function sleep>, '_trace_hook': None, 'ThreadError': <type at remote 0x842c59c>, '_enumerate': <function at remote 0xb793033c>, '_start_new_thread': <built-in function start_new_thread>, 'BoundedSemaphore': <function at remote 0xb792f79c>, '_shutdown': <instancemethod at remote 0xb7944e3c>, '__all__': ['activeCount', 'active_count', 'Condition', 'currentThread', 'current_thread', 'enumerate', 'Event', 'Lock', 'RLock', 'Semaphore', 'BoundedSemaphore', 'Thread', 'Timer', 'setprofile', 'settrace', 'local', 'stack_size'], '_Event': <type at remote 0x843ce4c>, 'active_count': <function at remote 0xb7930304>, '__package__': None, '_Condition': <typ...(truncated), locals=0x0, args=0xb791b4f8, argcount=1, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:3253 f = Frame 0x843338c, for file /usr/lib/python2.7/threading.py, line 525, in __bootstrap (self=<CompleteThread(_Thread__ident=-1215337616, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad120>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad120>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad120>) at remote 0xb7920fcc>, _Thread__name='Thread-1', _Thread__daemonic=False, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad110>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad110>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad110>) at remote 0xb7920e8c>) at remote 0xb7918dac>, _Thread__stderr=<message at remote 0x8285984>, _Thread__target=None, _Thread__kwargs={}, _Verbose__verbose=False, _Thread__args=(), _...(truncated) retval = 0x0 fastlocals = 0x84334c4 freevars = 0x84334c8 tstate = 0x8404708 x = <optimized out> u = <optimized out> #26 0xb7d7143c in function_call (func=<function at remote 0xb792fcdc>, arg= (<CompleteThread(_Thread__ident=-1215337616, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad120>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad120>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad120>) at remote 0xb7920fcc>, _Thread__name='Thread-1', _Thread__daemonic=False, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad110>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad110>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad110>) at remote 0xb7920e8c>) at remote 0xb7918dac>, _Thread__stderr=<message at remote 0x8285984>, _Thread__target=None, _Thread__kwargs={}, _Verbose__verbose=False, _Thread__args=(), _Thread__stopped=False, _Thread__initialized=True) at remote 0xb7918bec>,), kw=0x0) at ../Objects/funcobject.c:526 result = <optimized out> argdefs = <optimized out> kwtuple = 0x0 d = 0x0 k = 0x0 nk = 0 nd = 0 #27 0xb7d46fd4 in PyObject_Call (func=<function at remote 0xb792fcdc>, arg= (<CompleteThread(_Thread__ident=-1215337616, _Thread__block=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad120>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad120>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad120>) at remote 0xb7920fcc>, _Thread__name='Thread-1', _Thread__daemonic=False, _Thread__started=<_Event(_Verbose__verbose=False, _Event__flag=True, _Event__cond=<_Condition(_Verbose__verbose=False, _Condition__lock=<thread.lock at remote 0xb79ad110>, acquire=<built-in method acquire of thread.lock object at remote 0xb79ad110>, _Condition__waiters=[], release=<built-in method release of thread.lock object at remote 0xb79ad110>) at remote 0xb7920e8c>) at remote 0xb7918dac>, _Thread__stderr=<message at remote 0x8285984>, _Thread__target=None, _Thread__kwargs={}, _Verbose__verbose=False, _Thread__args=(), _Thread__stopped=False, _Thread__initialized=True) at remote 0xb7918bec>,), kw=0x0) at ../Objects/abstract.c:2529 result = <optimized out> call = 0xb7d71390 <function_call at ../Objects/funcobject.c:489> #28 0xb7d5454c in instancemethod_call (func=<function at remote 0xb792fcdc>, arg=<optimized out>, kw= 0x0) at ../Objects/classobject.c:2578 self = <optimized out> klass = <optimized out> result = <optimized out> #29 0xb7d46fd4 in PyObject_Call (func=<instancemethod at remote 0xb7958c34>, arg=(), kw=0x0) at ../Objects/abstract.c:2529 result = <optimized out> call = 0xb7d544b0 <instancemethod_call at ../Objects/classobject.c:2526> #30 0xb7de83eb in PyEval_CallObjectWithKeywords (func=<instancemethod at remote 0xb7958c34>, arg=(), kw= 0x0) at ../Python/ceval.c:3890 result = <optimized out> #31 0xb7e274b0 in t_bootstrap (boot_raw=0x843c2b0) at ../Modules/threadmodule.c:614 boot = 0x843c2b0 tstate = 0x8404708 res = <optimized out> #32 0x4fc83c39 in start_thread (arg=0xb78f6b70) at pthread_create.c:304 __res = <optimized out> __ignore1 = <optimized out> __ignore2 = <optimized out> pd = 0xb78f6b70 now = <optimized out> unwind_buf = { cancel_jmp_buf = {[0] = { jmp_buf = {[0] = 1338589172, [1] = 0, [2] = 4001536, [3] = -1215339800, [4] = 1845859011, [5] = -524713677}, mask_was_saved = 0 }}, priv = { pad = {[0] = 0x0, [1] = 0x0, [2] = 0x0, [3] = 0x0}, data = { prev = 0x0, cleanup = 0x0, canceltype = 0 } } } not_first_call = <optimized out> freesize = <optimized out> __PRETTY_FUNCTION__ = "start_thread" #33 0x4fbc096e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 No locals. Backtrace stopped: Not enough registers or memory available to unwind further
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov 18 2011 14:28:14) Included patches: 1-353 Compiled by Jan Larres <j...@majutsushi.net> Huge version with GTK2 GUI. Features included (+) or not (-): +arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +conceal +cryptv +cscope +cursorbind +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path +float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap -lua +menu +mksession +modify_fname +mouse +mouseshape +mouse_dec -mouse_gpm -mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +mouse_urxvt +multi_byte +multi_lang -mzscheme +netbeans_intg +path_extra +perl +persistent_undo +postscript +printer +profile +python -python3 +quickfix +reltime +rightleft +ruby +scrollbind +signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save system vimrc file: "$VIM/vimrc" user vimrc file: "$HOME/.vimrc" user exrc file: "$HOME/.exrc" system gvimrc file: "$VIM/gvimrc" user gvimrc file: "$HOME/.gvimrc" system menu file: "$VIMRUNTIME/menu.vim" fall-back for $VIM: "/home/jan/src/vim/installed/share/vim" Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/cairo -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/local/include -g -DDEBUG -Wall -Wshadow -Wmissing-prototypes -D_FORTIFY_SOURCE=1 Linking: gcc -L. -rdynamic -Wl,-export-dynamic -Wl,-E -L/usr/local/lib -Wl,--as-needed -o vim -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lnsl -ldl -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/perl/5.12/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -lruby1.8 -lpthread -lrt -ldl -lcrypt -lm -L/usr/lib DEBUG BUILD