mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	patch 9.1.0878: termdebug: cannot enable DEBUG mode
Problem: termdebug: cannot enable DEBUG mode Solution: Allow to specify DEBUG mode (Ubaldo Tiberi) closes: #16080 Signed-off-by: Ubaldo Tiberi <ubaldo.tiberi@volvo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
		
				
					committed by
					
						 Christian Brabandt
						Christian Brabandt
					
				
			
			
				
	
			
			
			
						parent
						
							b5c1557323
						
					
				
				
					commit
					ae1c8b790b
				
			| @@ -10688,6 +10688,7 @@ termdebug-starting	terminal.txt	/*termdebug-starting* | |||||||
| termdebug-stepping	terminal.txt	/*termdebug-stepping* | termdebug-stepping	terminal.txt	/*termdebug-stepping* | ||||||
| termdebug-timeout	terminal.txt	/*termdebug-timeout* | termdebug-timeout	terminal.txt	/*termdebug-timeout* | ||||||
| termdebug-variables	terminal.txt	/*termdebug-variables* | termdebug-variables	terminal.txt	/*termdebug-variables* | ||||||
|  | termdebug_contributing	terminal.txt	/*termdebug_contributing* | ||||||
| termdebug_disasm_window	terminal.txt	/*termdebug_disasm_window* | termdebug_disasm_window	terminal.txt	/*termdebug_disasm_window* | ||||||
| termdebug_evaluate_in_popup	terminal.txt	/*termdebug_evaluate_in_popup* | termdebug_evaluate_in_popup	terminal.txt	/*termdebug_evaluate_in_popup* | ||||||
| termdebug_map_K	terminal.txt	/*termdebug_map_K* | termdebug_map_K	terminal.txt	/*termdebug_map_K* | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| *terminal.txt*	For Vim version 9.1.  Last change: 2024 Nov 10 | *terminal.txt*	For Vim version 9.1.  Last change: 2024 Nov 19 | ||||||
|  |  | ||||||
|  |  | ||||||
| 		  VIM REFERENCE MANUAL	  by Bram Moolenaar | 		  VIM REFERENCE MANUAL	  by Bram Moolenaar | ||||||
| @@ -1737,4 +1737,23 @@ This can also be used in a "one-shot" manner: > | |||||||
| 	  let g:termdebug_config['evaluate_in_popup'] = v:false | 	  let g:termdebug_config['evaluate_in_popup'] = v:false | ||||||
| 	endfunc | 	endfunc | ||||||
| < | < | ||||||
|  |  | ||||||
|  | Contributing ~ | ||||||
|  | 						*termdebug_contributing* | ||||||
|  | Contributions for termdebug improvements are welcome. | ||||||
|  | However, it is fairly common that during the development process you need some | ||||||
|  | mechanisms like `echo` statements (or similar) to help you in your job. | ||||||
|  | For this reason, you can set: > | ||||||
|  |     let g:termdebug_config['debug'] = true | ||||||
|  | < | ||||||
|  | This sets the `DEBUG` variable to `true` in the source code that you can use | ||||||
|  | within the source code. An example of its usage follows: > | ||||||
|  |     if exists('g:termdebug_loaded') | ||||||
|  |       if DEBUG | ||||||
|  | 	Echoerr('Termdebug already loaded.') | ||||||
|  |       endif | ||||||
|  |       finish | ||||||
|  |     endif | ||||||
|  | < | ||||||
|  |  | ||||||
|  vim:tw=78:ts=8:noet:ft=help:norl: |  vim:tw=78:ts=8:noet:ft=help:norl: | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ vim9script | |||||||
|  |  | ||||||
| # Author: Bram Moolenaar | # Author: Bram Moolenaar | ||||||
| # Copyright: Vim license applies, see ":help license" | # Copyright: Vim license applies, see ":help license" | ||||||
| # Last Change: 2024 Jul 04 | # Last Change: 2024 Nov 19 | ||||||
| # Converted to Vim9: Ubaldo Tiberi <ubaldo.tiberi@gmail.com> | # Converted to Vim9: Ubaldo Tiberi <ubaldo.tiberi@gmail.com> | ||||||
|  |  | ||||||
| # WORK IN PROGRESS - The basics works stable, more to come | # WORK IN PROGRESS - The basics works stable, more to come | ||||||
| @@ -38,6 +38,11 @@ vim9script | |||||||
| # The communication with gdb uses GDB/MI.  See: | # The communication with gdb uses GDB/MI.  See: | ||||||
| # https://sourceware.org/gdb/current/onlinedocs/gdb/GDB_002fMI.html | # https://sourceware.org/gdb/current/onlinedocs/gdb/GDB_002fMI.html | ||||||
|  |  | ||||||
|  | var DEBUG = false | ||||||
|  | if exists('g:termdebug_config') | ||||||
|  |   DEBUG = get(g:termdebug_config, 'debug', false) | ||||||
|  | endif | ||||||
|  |  | ||||||
| def Echoerr(msg: string) | def Echoerr(msg: string) | ||||||
|   echohl ErrorMsg | echom $'[termdebug] {msg}' | echohl None |   echohl ErrorMsg | echom $'[termdebug] {msg}' | echohl None | ||||||
| enddef | enddef | ||||||
| @@ -49,7 +54,9 @@ enddef | |||||||
| # Variables to keep their status among multiple instances of Termdebug | # Variables to keep their status among multiple instances of Termdebug | ||||||
| # Avoid to source the script twice. | # Avoid to source the script twice. | ||||||
| if exists('g:termdebug_loaded') | if exists('g:termdebug_loaded') | ||||||
|   Echoerr('Termdebug already loaded.') |   if DEBUG | ||||||
|  |     Echoerr('Termdebug already loaded.') | ||||||
|  |   endif | ||||||
|   finish |   finish | ||||||
| endif | endif | ||||||
| g:termdebug_loaded = true | g:termdebug_loaded = true | ||||||
|   | |||||||
| @@ -57,6 +57,8 @@ endfunction | |||||||
|  |  | ||||||
| packadd termdebug | packadd termdebug | ||||||
|  |  | ||||||
|  | " should be the first test to run, since it validates the window layout with | ||||||
|  | " win ids | ||||||
| func Test_termdebug_basic() | func Test_termdebug_basic() | ||||||
|   let bin_name = 'XTD_basic' |   let bin_name = 'XTD_basic' | ||||||
|   let src_name = bin_name .. '.c' |   let src_name = bin_name .. '.c' | ||||||
| @@ -620,4 +622,22 @@ function Test_termdebug_config_types() | |||||||
|   unlet g:termdebug_config |   unlet g:termdebug_config | ||||||
| endfunction | endfunction | ||||||
|  |  | ||||||
|  | function Test_termdebug_config_debug() | ||||||
|  |   let s:error_message = '\[termdebug\] Termdebug already loaded' | ||||||
|  |  | ||||||
|  |   " USER mode: No error message shall be displayed | ||||||
|  |   packadd termdebug | ||||||
|  |   call assert_true(execute('messages') !~ s:error_message) | ||||||
|  |  | ||||||
|  |   " DEBUG mode: Error message shall now be displayed | ||||||
|  |   let g:termdebug_config = {} | ||||||
|  |   let g:termdebug_config['debug'] = 1 | ||||||
|  |   packadd termdebug | ||||||
|  |   call assert_true(execute('messages') =~ s:error_message) | ||||||
|  |  | ||||||
|  |   unlet g:termdebug_config | ||||||
|  |   unlet g:termdebug_loaded | ||||||
|  |   " Revert DEBUG mode, by reloading the plugin | ||||||
|  |   source $VIMRUNTIME/pack/dist/opt/termdebug/plugin/termdebug.vim | ||||||
|  | endfunction | ||||||
| " vim: shiftwidth=2 sts=2 expandtab | " vim: shiftwidth=2 sts=2 expandtab | ||||||
|   | |||||||
| @@ -704,6 +704,8 @@ static char *(features[]) = | |||||||
|  |  | ||||||
| static int included_patches[] = | static int included_patches[] = | ||||||
| {   /* Add new patch number below this line */ | {   /* Add new patch number below this line */ | ||||||
|  | /**/ | ||||||
|  |     878, | ||||||
| /**/ | /**/ | ||||||
|     877, |     877, | ||||||
| /**/ | /**/ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user