Re: Advice for debugging Vim
Thanks, guys! This is really great stuff. The tips I gathered are here: 1. Use "VIMRUNTIME=../runtime .vim" to run the fresh Vim binary. 2. I can run "./configure" directly to override default build options (allows me to NOT change the makefile). 3. The "Makefile" can also be edited directly to override build options. 4. I can use the "termdebug" package with gdb. Thanks, again! -- -- 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 vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Advice for debugging Vim
> Configure and build Vim as usual. Edit src/Makefile, search for > "CFLAGS = " and replace > it with the following: > > CFLAGS = -g -O0 Or, in case you don't want to change any files for the purpose, an alternative is: $ make distclean $ CFLAGS="-g -O0" ./configure $ make Make sure that you run those commands in vim/src/ . The resulting Vim refers to $VIMRUNTIME (usually, /usr/local/share/vim/vim80/) for the runtime files even before it gets installed. Hence, if you have never installed the files there or have already uninstalled them, doing ./vim in vim/src/ results in a bunch of warnings. To avoid that, try $ VIMRUNTIME=../runtime ./vim Best regards, Kazunobu -- -- 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 vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Advice for debugging Vim
On Di, 15 Mai 2018, Jason Franklin wrote: > Does anyone have any advice for running Vim with a debugger? > > 1. What debugger is preferred? GDB or something else? Specific commands to > run would be useful here. The termdebug plugin is really helpful. Check :h termdebug Best, Christian -- Wohl dem, der seiner Väter gern gedenkt. -- Johann Wolfgang von Goethe (Iphigenie) -- -- 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 vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Advice for debugging Vim
Hi, On Tue, May 15, 2018 at 10:52 AM, Jason Franklin wrote: > Does anyone have any advice for running Vim with a debugger? > > 1. What debugger is preferred? GDB or something else? Specific commands to > run would be useful here. > I have used both GDB and LLDB to debug Vim (on both Linux and MacOS). > > 2. How do I build Vim with debugging information in the binary? > Configure and build Vim as usual. Edit src/Makefile, search for "CFLAGS = " and replace it with the following: CFLAGS = -g -O0 Run the "make clean" command followed by "make" to build Vim with debug symbols. Invoke gdb/lldb and load Vim (either gdb src/vim or lldb src/vim). Set up breakpoints and use the "run" command to start Vim and start debugging. - Yegappan > > 3. How can I go about debugging Vim on Windows? > > Thanks, > Jason Franklin > -- -- 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 vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Advice for debugging Vim
Does anyone have any advice for running Vim with a debugger? 1. What debugger is preferred? GDB or something else? Specific commands to run would be useful here. 2. How do I build Vim with debugging information in the binary? 3. How can I go about debugging Vim on Windows? Thanks, Jason Franklin -- -- 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 vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: debugging vim
On Sunday, August 21, 2016 at 4:00:24 PM UTC+3, Bram Moolenaar wrote: > Carmel Zuk wrote: > > > Hi all, > > I'd like to debug vim with cgdb to understand how it works. > > > > My problem is this: > > when I run > > cgdb vim > > I get the output in the cgdb console as binary.. I can't debug mouse > > actions or editing. > > > > Is there a way to point vim to another terminal instance other than the > > cgdb? > > > > or how would you suggest to go about this one? > > I don't know cgdb, but with gdb you can use the -tty argument. > You would start a terminal and make it not do anything, e.g. with > "while true; do sleep 3600; done". Then get it's device and pass it to > gdb with -tty. > > -- > Don't read everything you believe. > > /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ > ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ > \\\ an exciting new programming language -- http://www.Zimbu.org/// > \\\help me help AIDS victims -- http://ICCF-Holland.org/// Thank you very much sir. very helpful. -- -- 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 vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: debugging vim
Carmel Zuk wrote: > Hi all, > I'd like to debug vim with cgdb to understand how it works. > > My problem is this: > when I run > cgdb vim > I get the output in the cgdb console as binary.. I can't debug mouse actions > or editing. > > Is there a way to point vim to another terminal instance other than the cgdb? > > or how would you suggest to go about this one? I don't know cgdb, but with gdb you can use the -tty argument. You would start a terminal and make it not do anything, e.g. with "while true; do sleep 3600; done". Then get it's device and pass it to gdb with -tty. -- Don't read everything you believe. /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.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 --- 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 vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
debugging vim
Hi all, I'd like to debug vim with cgdb to understand how it works. My problem is this: when I run cgdb vim I get the output in the cgdb console as binary.. I can't debug mouse actions or editing. Is there a way to point vim to another terminal instance other than the cgdb? or how would you suggest to go about this one? thanks -- -- 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 vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Debugging vim crash on windows
On Saturday, June 2, 2012 3:55:32 PM UTC+7, char101 wrote: > Hi, > > Lately I have been getting rather frequent crash with gvim. It seems to > happen randomly. I do have a debug info of the crash. Unfortunately I cannot > find what is causing the crash by looking at the debug info. Can anyone help > me finding the problem that made gvim crash? [DELETE] Could this be the cause Quote from http://msdn.microsoft.com/en-us/library/windows/desktop/aa366586%28v=vs.85%29.aspx --- On computers with more than 4 GB of memory, the GlobalMemoryStatus function can return incorrect information, reporting a value of –1 to indicate an overflow. --- Since vim alloc check for free memory using GlobalMemoryStatus and I have a 8 GB memory, it is possible that the function returns incorrect value. I will try to use GlobalMemoryStatusEx and see if any crash happen. -- 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
Re: Debugging vim crash on windows
On Saturday, June 2, 2012 7:15:11 PM UTC+7, Dominique Pelle wrote: > char101 > wrote: > > > Hi, > > > > Lately I have been getting rather frequent crash with gvim. It seems to > > happen randomly. I do have a debug info of the crash. Unfortunately I > > cannot find what is causing the crash by looking at the debug info. Can > > anyone help me finding the problem that made gvim crash? > > > > Crash info: > > > > (c70.1018): Access violation - code c005 (!!! second chance !!!) > > eax=01cfb950 ebx= ecx= edx= esi= > > edi=0012e418 > > eip=00438bed esp=0012dab0 ebp=0012df24 iopl=0 nv up ei pl nz na pe > > nc > > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs= > > efl=0206 > > gvim!call_user_func+0x8d: > > 00438bed 8903 mov dword ptr [ebx],eax > > ds:0023:= > > 0:000> ub > > gvim!call_user_func+0x6c [eval.c @ 5]: > > 00438bcc 680806 push 608h > > 00438bd1 e87a7d0600 call gvim!lalloc (004a0950) > > 00438bd6 8b0d08db5500 mov ecx,dword ptr [gvim!current_funccal > > (0055db08)] > > 00438bdc 8b1508df5500 mov edx,dword ptr [gvim!ex_nesting_level > > (0055df08)] > > 00438be2 8bd8 mov ebx,eax > > 00438be4 8b4508 mov eax,dword ptr [ebp+8] > > 00438be7 56 push esi > > 00438be8 68fc4b5500 push offset gvim!dbg_breakp (00554bfc) > > > > It seems that since ebx is 0, vim is trying to access zero pointer. But I > > cannot find which pointer is it. > > > > Source code where the crash happen > > > > fc = (funccall_T *)alloc(sizeof(funccall_T)); > > fc->caller = current_funccal; > > current_funccal = fc; > > fc->func = fp; > > fc->rettv = rettv; > > rettv->vval.v_number = 0; > > fc->linenr = 0; > > fc->returned = FALSE; > > fc->level = ex_nesting_level; > > /* Check if this function has a breakpoint. */ > > fc->breakpoint = dbg_find_breakpoint(FALSE, fp->uf_name, (linenr_T)0); > > <--- crash here > > fc->dbg_tick = debug_tick; > > > Which version of Vim are you using? (output of :version) > > Several patches since official version 7.3 fix crashes. > Latest version is Vim-7.3.538. Hi, I am using the latest version. But the random crash happens since several months ago. I don't remember exactly when since it happens randomly. I am also getting memory allocation fail randomly too. I does not happens frequently, maybe once a week. This is the outout of version VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jun 2 2012 13:20:10) MS-Windows 32-bit GUI version Included patches: 1-538 Compiled by Charles@SOLARIS Normal version with 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 -gettext -hangul_input -iconv +insert_expand +jumplist -keymap -langmap +libcall +linebreak +lispindent +listcmds +localmap +lua +menu +mksession +modify_fname +mouse +mouseshape +multi_byte -multi_lang -mzscheme -netbeans_intg -ole +path_extra -perl -persistent_undo -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 -tgetent -termresponse +textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup -xfontset -xim -xterm_save -xpm_w32 system vimrc file: "$VIM\vimrc" user vimrc file: "$HOME\_vimrc" 2nd user vimrc file: "$VIM\_vimrc" user exrc file: "$HOME\_exrc" 2nd user exrc file: "$VIM\_exrc" system gvimrc file: "$VIM\gvimrc" user gvimrc file: "$HOME\_gvimrc" 2nd user gvimrc file: "$VIM\_gvimrc" system menu file: "$VIMRUNTIME\menu.vim" Compilation: cl -c /W3 /nologo -I. -Iproto -DHAVE_PATHDEF -DWIN32 -DFEAT_AUTOCHDIR -DFEAT_SIGNS -DFEAT_CONCEAL -DWINVER=0x0501 -D_WIN32_WINNT=0x0501 /Fo.\ObjGUY/ /O2 /GS- /fp:fast /GL -DNDEBUG /arch:SSE2 /MD -DFEAT_MBYTE -DFEAT_GUI_W32 -DFEAT_LUA -DFEAT_PYTHON -DFEAT_NORMAL /Fd.\ObjGUY/ /Zi Linking: link /RELEASE /nologo /subsystem:windows /OPT:REF /LTCG:STATUS oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib comdlg32.lib ole32.lib uuid.lib /machine:i386 /nodefaultlib /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib gdi32.lib version.lib winspool.lib comctl32.lib advapi32.lib shell32.lib /machine:i386 /nodefaultlib msvcrt.lib user32.lib uxtheme.lib comctl32.lib pnglib.lib "P:\@editor\vim\app\lua\lib\lua51.lib" P:\@editor\vim\app\python\libs\python27.lib /PDB:gvim.pdb -debug -- You received this message from the "vim_de
Re: Debugging vim crash on windows
On Saturday, June 2, 2012 6:57:15 PM UTC+7, Christian Brabandt wrote: > My guess is, that the alloc failed and returned NULL. > > Perhaps this patch helps to avoid it: > > diff --git a/src/eval.c b/src/eval.c > --- a/src/eval.c > +++ b/src/eval.c > @@ -7,6 +7,13 @@ > line_breakcheck(); /* check for CTRL-C hit */ > > fc = (funccall_T *)alloc(sizeof(funccall_T)); > +if (fc == NULL) > +{ > + do_outofmem_msg((long_u) sizeof(funccall_T)); > + rettv->v_type = VAR_NUMBER; > + rettv->vval.v_number = -1; > + return; > +} > fc->caller = current_funccal; > current_funccal = fc; > fc->func = fp; Thank you for the patch Christian. I will try to apply it and see if any memory allocation error message pop up. If the alloc failed, then there could be something wrong with vim memory allocation since I still have 4 GB free memory. -- 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
Re: Debugging vim crash on windows
char101 wrote: > Hi, > > Lately I have been getting rather frequent crash with gvim. It seems to > happen randomly. I do have a debug info of the crash. Unfortunately I cannot > find what is causing the crash by looking at the debug info. Can anyone help > me finding the problem that made gvim crash? > > Crash info: > > (c70.1018): Access violation - code c005 (!!! second chance !!!) > eax=01cfb950 ebx= ecx= edx= esi= edi=0012e418 > eip=00438bed esp=0012dab0 ebp=0012df24 iopl=0 nv up ei pl nz na pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs= efl=0206 > gvim!call_user_func+0x8d: > 00438bed 8903 mov dword ptr [ebx],eax > ds:0023:= > 0:000> ub > gvim!call_user_func+0x6c [eval.c @ 5]: > 00438bcc 680806 push 608h > 00438bd1 e87a7d0600 call gvim!lalloc (004a0950) > 00438bd6 8b0d08db5500 mov ecx,dword ptr [gvim!current_funccal > (0055db08)] > 00438bdc 8b1508df5500 mov edx,dword ptr [gvim!ex_nesting_level > (0055df08)] > 00438be2 8bd8 mov ebx,eax > 00438be4 8b4508 mov eax,dword ptr [ebp+8] > 00438be7 56 push esi > 00438be8 68fc4b5500 push offset gvim!dbg_breakp (00554bfc) > > It seems that since ebx is 0, vim is trying to access zero pointer. But I > cannot find which pointer is it. > > Source code where the crash happen > > fc = (funccall_T *)alloc(sizeof(funccall_T)); > fc->caller = current_funccal; > current_funccal = fc; > fc->func = fp; > fc->rettv = rettv; > rettv->vval.v_number = 0; > fc->linenr = 0; > fc->returned = FALSE; > fc->level = ex_nesting_level; > /* Check if this function has a breakpoint. */ > fc->breakpoint = dbg_find_breakpoint(FALSE, fp->uf_name, (linenr_T)0); > <--- crash here > fc->dbg_tick = debug_tick; Which version of Vim are you using? (output of :version) Several patches since official version 7.3 fix crashes. Latest version is Vim-7.3.538. Regards -- Dominique -- 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
Re: Debugging vim crash on windows
Hi char101! On Sa, 02 Jun 2012, char101 wrote: > Hi, > > Lately I have been getting rather frequent crash with gvim. It seems to > happen randomly. I do have a debug info of the crash. Unfortunately I cannot > find what is causing the crash by looking at the debug info. Can anyone help > me finding the problem that made gvim crash? > > Crash info: > > (c70.1018): Access violation - code c005 (!!! second chance !!!) > eax=01cfb950 ebx= ecx= edx= esi= edi=0012e418 > eip=00438bed esp=0012dab0 ebp=0012df24 iopl=0 nv up ei pl nz na pe nc > cs=001b ss=0023 ds=0023 es=0023 fs=003b gs= efl=0206 > gvim!call_user_func+0x8d: > 00438bed 8903mov dword ptr [ebx],eax > ds:0023:= > 0:000> ub > gvim!call_user_func+0x6c [eval.c @ 5]: > 00438bcc 680806 push608h > 00438bd1 e87a7d0600 callgvim!lalloc (004a0950) > 00438bd6 8b0d08db5500mov ecx,dword ptr [gvim!current_funccal > (0055db08)] > 00438bdc 8b1508df5500mov edx,dword ptr [gvim!ex_nesting_level > (0055df08)] > 00438be2 8bd8mov ebx,eax > 00438be4 8b4508 mov eax,dword ptr [ebp+8] > 00438be7 56 pushesi > 00438be8 68fc4b5500 pushoffset gvim!dbg_breakp (00554bfc) > > It seems that since ebx is 0, vim is trying to access zero pointer. But I > cannot find which pointer is it. > > Source code where the crash happen > > fc = (funccall_T *)alloc(sizeof(funccall_T)); > fc->caller = current_funccal; > current_funccal = fc; > fc->func = fp; > fc->rettv = rettv; > rettv->vval.v_number = 0; > fc->linenr = 0; > fc->returned = FALSE; > fc->level = ex_nesting_level; > /* Check if this function has a breakpoint. */ > fc->breakpoint = dbg_find_breakpoint(FALSE, fp->uf_name, (linenr_T)0); > <--- crash here > fc->dbg_tick = debug_tick; My guess is, that the alloc failed and returned NULL. Perhaps this patch helps to avoid it: diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -7,6 +7,13 @@ line_breakcheck(); /* check for CTRL-C hit */ fc = (funccall_T *)alloc(sizeof(funccall_T)); +if (fc == NULL) +{ + do_outofmem_msg((long_u) sizeof(funccall_T)); + rettv->v_type = VAR_NUMBER; + rettv->vval.v_number = -1; + return; +} fc->caller = current_funccal; current_funccal = fc; fc->func = fp; regards, Christian -- Evolution ist die Entwicklung vom Tümpel in den Fernsehsessel. -- Erwin Pelzig -- 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
Debugging vim crash on windows
Hi, Lately I have been getting rather frequent crash with gvim. It seems to happen randomly. I do have a debug info of the crash. Unfortunately I cannot find what is causing the crash by looking at the debug info. Can anyone help me finding the problem that made gvim crash? Crash info: (c70.1018): Access violation - code c005 (!!! second chance !!!) eax=01cfb950 ebx= ecx= edx= esi= edi=0012e418 eip=00438bed esp=0012dab0 ebp=0012df24 iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs= efl=0206 gvim!call_user_func+0x8d: 00438bed 8903mov dword ptr [ebx],eax ds:0023:= 0:000> ub gvim!call_user_func+0x6c [eval.c @ 5]: 00438bcc 680806 push608h 00438bd1 e87a7d0600 callgvim!lalloc (004a0950) 00438bd6 8b0d08db5500mov ecx,dword ptr [gvim!current_funccal (0055db08)] 00438bdc 8b1508df5500mov edx,dword ptr [gvim!ex_nesting_level (0055df08)] 00438be2 8bd8mov ebx,eax 00438be4 8b4508 mov eax,dword ptr [ebp+8] 00438be7 56 pushesi 00438be8 68fc4b5500 pushoffset gvim!dbg_breakp (00554bfc) It seems that since ebx is 0, vim is trying to access zero pointer. But I cannot find which pointer is it. Source code where the crash happen fc = (funccall_T *)alloc(sizeof(funccall_T)); fc->caller = current_funccal; current_funccal = fc; fc->func = fp; fc->rettv = rettv; rettv->vval.v_number = 0; fc->linenr = 0; fc->returned = FALSE; fc->level = ex_nesting_level; /* Check if this function has a breakpoint. */ fc->breakpoint = dbg_find_breakpoint(FALSE, fp->uf_name, (linenr_T)0); <--- crash here fc->dbg_tick = debug_tick; -- 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