From 0707234bbe4dcaee4e84958f1b331ded48ce8bb7 Mon Sep 17 00:00:00 2001 From: Martin Prikryl Date: Wed, 30 Sep 2026 13:27:02 +0000 Subject: [PATCH] Removing all debug info sources except for .map file Seems to have no significant impact on release build (have some on debug build). With 64-bit build, no impact at all. With 32-bit, there are some differences, but all seem to be in misidentified frames anyway (which are volatile, so the impact might not be due to change in sources) Source commit: b8d538dd403c7f78778247278bed6e685a5589fb --- source/packages/jcl/JclDebug.pas | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/source/packages/jcl/JclDebug.pas b/source/packages/jcl/JclDebug.pas index a86b66a0a..6842ea0c7 100644 --- a/source/packages/jcl/JclDebug.pas +++ b/source/packages/jcl/JclDebug.pas @@ -4110,23 +4110,25 @@ begin if not Assigned(InfoSourceClassList) then begin InfoSourceClassList := TList.Create; + {$IFNDEF WINSCP} {$IFNDEF DEBUG_NO_BINARY} InfoSourceClassList.Add(Pointer(TJclDebugInfoBinary)); {$ENDIF !DEBUG_NO_BINARY} {$IFNDEF DEBUG_NO_TD32} - {$IFNDEF WINSCP} InfoSourceClassList.Add(Pointer(TJclDebugInfoTD32)); - {$ENDIF ~WINSCP} {$ENDIF !DEBUG_NO_TD32} + {$ENDIF ~WINSCP} {$IFNDEF DEBUG_NO_MAP} InfoSourceClassList.Add(Pointer(TJclDebugInfoMap)); {$ENDIF !DEBUG_NO_MAP} + {$IFNDEF WINSCP} {$IFNDEF DEBUG_NO_SYMBOLS} InfoSourceClassList.Add(Pointer(TJclDebugInfoSymbols)); {$ENDIF !DEBUG_NO_SYMBOLS} {$IFNDEF DEBUG_NO_EXPORTS} InfoSourceClassList.Add(Pointer(TJclDebugInfoExports)); {$ENDIF !DEBUG_NO_EXPORTS} + {$ENDIF ~WINSCP} end; end; @@ -5103,7 +5105,14 @@ begin if IncludeVAddress then ModulePosition := 2 * (ModulePosition - 1) + 1; if ModulePosition < Length(Result) then - ModuleName := ModuleName + '.'; + begin + ModuleName := ModuleName + '.' + end + else + begin + while Length(Result) < ModulePosition - 1 do + Result := Result + ' '; + end; Insert(ModuleName, Result, ModulePosition); end; end;