[Lazarus] Win 7 issue / Re: -dWINDOWS_LIGATURE [[Re: Font ligatures support]]

Maxim Ganetsky ganmax at narod.ru
Wed Oct 7 01:42:41 CEST 2020


06.10.2020 16:23, Martin Frb via lazarus пишет:
> On 06/10/2020 15:09, Maxim Ganetsky via lazarus wrote:
>>
>> ----
>> Can you try to catch it in the debugger, and see what params are given
>> to NewTextOut
>> in
>> #2  0x00ab95f6 in DRAWHILIGHTMARKUPTOKEN (ATOKENINFO=...,
>> parentfp=0x13abf6e8)
>>      at lazsyntextarea.pp:1741
>>
>>   fTextDrawer.NewTextOut(TxtLeft, rcToken.Top, TxtFlags, tok,
>> ATokenInfo.Tk.TokenStart, ATokenInfo.Tk.TokenLength, FEtoBuf);
>> Can you add some debugln in a format convenient to you? This will
>> simplify things, I think.
>>
> This is in the paint handler, and it is called for each token. So 
> potentially very slow with debugln.
> 
> But since it is in startup, hopefully you wont have to many.
> 
> Apply this patch please


With this patch applied Lazarus seems to crash on debugln in 
lazsyntextarea.pp. Just in case, I tried to remove this particular 
debugln, then it printed 'BEFORE' and nothing more.

i:\FPC\lazarus>lazarus --debug-output=.\dbgoutput.txt
Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] 
PrimaryConfigPath="C:\Users\Maxim
\AppData\Local\lazarus"
Hint: (lazarus) [TMainIDE.ParseCmdLineOptions] 
SecondaryConfigPath="i:\FPC\lazar
us"
Hint: (lazarus) [TMainIDE.LoadGlobalOptions]
Hint: (lazarus) LastCalled="I:\FPC\lazarus\lazarus.old.working.exe"
Hint: (lazarus) CurPrgName="i:\FPC\lazarus\lazarus.exe"
Hint: (lazarus) 
AltPrgName="C:\Users\Maxim\AppData\Local\lazarus\bin\lazarus.exe
"
Hint: (lazarus) [TBuildManager.SetBuildTarget] Old=i386-win32-win32 
New=i386-win
32-win32 Changed: OS/CPU=True LCL=False
TApplication.HandleException: EAccessViolation
Access violation
   Stack trace:
   $00C12B2D  DRAWHILIGHTMARKUPTOKEN,  line 1740 of lazsyntextarea.pp
   $00C11C76  PAINTLINES,  line 1799 of lazsyntextarea.pp
   $00C11847  PAINTTEXTLINES,  line 1871 of lazsyntextarea.pp
   $00C113D8  DOPAINT,  line 1489 of lazsyntextarea.pp
   $00C07EA0  PAINT,  line 1308 of syneditmiscclasses.pp
   $00C0FDD2  DOPAINT,  line 1134 of lazsyntextarea.pp
   $00C07EA0  PAINT,  line 1308 of syneditmiscclasses.pp
   $00D9A022  DOPAINT,  line 1353 of sourcesyneditor.pas
   $00C07EA0  PAINT,  line 1308 of syneditmiscclasses.pp
   $0079ECCB  PAINT,  line 4221 of synedit.pp
   $005B3471  PAINTWINDOW,  line 123 of include/customcontrol.inc
   $0059BB7B  PAINTHANDLER,  line 4857 of include/wincontrol.inc
   $005A00A4  WMPAINT,  line 6851 of include/wincontrol.inc
   $005B3330  WMPAINT,  line 103 of include/customcontrol.inc
   $004103A1
   $0059D0A7  WNDPROC,  line 5429 of include/wincontrol.inc
   $007A6B0F  WNDPROC,  line 6399 of synedit.pp
FreeFormEditor: FormEditor1=TFormEditor
Hint: (lazarus) [TMainIDE.Destroy] B  -> inherited Destroy... TMainIDE
Hint: (lazarus) [TMainIDE.Destroy] END
Heap dump by heaptrc unit of i:\FPC\lazarus\lazarus.exe
6222427 memory blocks allocated : 556846869/572547168
6211889 memory blocks freed     : 555436555/571105040
10538 unfreed memory blocks : 1410314
True heap size : 28114944 (128 used in System startup)
True free heap : 25543392
Should be : 25661040
Call trace for block $1CEE6DD0 size 64
   $00418EBF
   $770034A1
   $77003473
   $76FB0133
   $00C11C76  PAINTLINES,  line 1799 of lazsyntextarea.pp
   $00C11847  PAINTTEXTLINES,  line 1871 of lazsyntextarea.pp
   $00C113D8  DOPAINT,  line 1489 of lazsyntextarea.pp
   $00C07EA0  PAINT,  line 1308 of syneditmiscclasses.pp
   $00C0FDD2  DOPAINT,  line 1134 of lazsyntextarea.pp
   $00C07EA0  PAINT,  line 1308 of syneditmiscclasses.pp
   $00D9A022  DOPAINT,  line 1353 of sourcesyneditor.pas
   $00C07EA0  PAINT,  line 1308 of syneditmiscclasses.pp
   $0079ECCB  PAINT,  line 4221 of synedit.pp
   $005B3471  PAINTWINDOW,  line 123 of include/customcontrol.inc
   $0059BB7B  PAINTHANDLER,  line 4857 of include/wincontrol.inc
   $005A00A4  WMPAINT,  line 6851 of include/wincontrol.inc
Call trace for block $1C6FECD0 size 92

-- 
Best regards,
  Maxim Ganetsky                  mailto:ganmax at narod.ru


More information about the lazarus mailing list