From dfcb3321a361ae3e36478de35f68228848f38abe Mon Sep 17 00:00:00 2001 From: martin Date: Sun, 28 Apr 2019 13:31:43 +0000 Subject: [PATCH] LazDebuggerGdbmi: Improve whitelisted commands for memory limit git-svn-id: trunk@61067 - --- components/lazdebuggergdbmi/gdbmidebugger.pp | 42 ++++++++++++++++---- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/components/lazdebuggergdbmi/gdbmidebugger.pp b/components/lazdebuggergdbmi/gdbmidebugger.pp index bb7df376b3..5a297bbef0 100644 --- a/components/lazdebuggergdbmi/gdbmidebugger.pp +++ b/components/lazdebuggergdbmi/gdbmidebugger.pp @@ -10762,13 +10762,41 @@ begin Instr.ApplyArrayLenLimit(DebuggerProperties.MaxLocalsLengthForStaticArray); end else - if not( (pos('-exec-', ACommand) = 1) or - (pos('-break-', ACommand) = 1) or - (pos('-data-list-register-', ACommand) = 1) or - (pos('-data-list-changed-registers', ACommand) = 1) or - (pos('-data-disassemble', ACommand) = 1) or - (pos('-data-read-memory', ACommand) = 1) or - (pos('-gdb-exit', ACommand) = 1) + if not( (Length(ACommand) < 2) or + ( (ACommand[1] = '-') and ( + ( (ACommand[2] = 'd') and ( + (pos('-data-list-register-', ACommand) = 1) or + (pos('-data-list-changed-registers', ACommand) = 1) or + (pos('-data-disassemble', ACommand) = 1) or + (pos('-data-read-memory', ACommand) = 1) + )) or + ( (ACommand[2] = 'g') and ( + (pos('-gdb-version ', ACommand) = 1) or + (pos('-gdb-set ', ACommand) = 1) or + (pos('-gdb-exit', ACommand) = 1) + )) or + ( (not(ACommand[2] in ['d', 'g'])) and ( + (pos('-exec-', ACommand) = 1) or + (pos('-file-exec-', ACommand) = 1) or + (pos('-break-', ACommand) = 1) + )) + )) or + ( (ACommand[1] = 'i') and ( + (pos('info line', ACommand) = 1) or + (pos('info address', ACommand) = 1) or + (pos('info pid', ACommand) = 1) or + (pos('info proc', ACommand) = 1) or + (pos('info function', ACommand) = 1) or + (pos('interrupt', ACommand) = 1) or + (pos('info program', ACommand) = 1) + )) or + ( (ACommand[1] = 's') and ( + (pos('set ', ACommand) = 1) or + (pos('show ', ACommand) = 1) + )) or + ( (ACommand[1] = 'm') and ( + (pos('maint ', ACommand) = 1) + )) ) then begin Instr.ApplyMemLimit(DebuggerProperties.GdbValueMemLimit);