[gelöst] Heaptrc neu kompilieren?

Für Fragen rund um die Ide und zum Debugger
Antworten
Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1535
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

[gelöst] Heaptrc neu kompilieren?

Beitrag von fliegermichl »

Ich habe in meinem Trace u.a. folgenden Eintrag:

Code: Alles auswählen

Call trace for block $00000000253906A0 size 272
  $00000001000136A2
  $0000000100010C9B
  $00000001003FB131  CREATE,  line 89 of include/brush.inc
  $0000000100424E93  CREATEBRUSH,  line 5010 of include/wincontrol.inc
  $0000000100427D73  GETBRUSH,  line 6486 of include/wincontrol.inc
  $00000001004250A1  ERASEBACKGROUND,  line 5052 of include/wincontrol.inc
  $00000001004295BD  WMERASEBKGND,  line 7351 of include/wincontrol.inc
  $00000001000110A2
  $0000000100431529  WNDPROC,  line 2304 of include/control.inc
  $0000000100425D3D  WNDPROC,  line 5434 of include/wincontrol.inc
  $0000000100571725  DELIVERMESSAGE,  line 114 of lclmessageglue.pas
  $000000010051A811  DOWINDOWPROC,  line 2642 of win32/win32callback.inc
  $000000010051B072  WINDOWPROC,  line 2807 of win32/win32callback.inc
  $00007FFB3EDC83F1
  $00007FFB3EDC80AC
  $00007FFB3EDD31DD
  
Damit kann man nicht wirklich was anfangen, da ich nicht den vollständigen Callstack sehen kann.
Jetzt habe ich mir den Quellcode von heaptrc.pp angeschaut, der ja Bestandteil der FPC RTL ist.
Da gibt es ein conditional define

Code: Alles auswählen

{$ifdef FPC_HEAPTRC_EXTRA}
  {$define EXTRA}
  {$inline off}
{$endif FPC_HEAPTRC_EXTRA}
und etwas weiter unten wird mit

Code: Alles auswählen

{$ifdef EXTRA}
  tracesize = 32;
{$else EXTRA}
  tracesize = 16;
{$endif EXTRA}
Wenn ich die Zeilen in dem Callstack zähle, komme ich auf 16. Also vermutlich kann das hier erweitert werden.
Wie kann ich nun erreichen, daß die heaptrc.pp mit dem {$define FPC_HEAPTRC_EXTRA} neu kompiliert wird?
Zuletzt geändert von fliegermichl am Mi 11. Dez 2024, 11:04, insgesamt 1-mal geändert.

Benutzeravatar
Zvoni
Beiträge: 167
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
CPU-Target: 32Bit
Wohnort: BW

Re: Heaptrc neu kompilieren?

Beitrag von Zvoni »

Müsste man doch in den Projekt-Einstellungen global einstellen können, oder?
Projekt - Projekteinstellungen - Compilereinstellungen - Benutzerdefinierte Einstellungen
rechts oben auf "Definitionen"
FPC_HEAPTRC_EXTRA hinzufügen, checkbox auf True setzen, testen
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1535
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Heaptrc neu kompilieren?

Beitrag von fliegermichl »

Das reicht leider nicht. Ich habe es jetzt so gelöst.
fpcupdeluxe auf Setup+ klicken, die Option FPC/Laz rebuild only aktiviert und bei FPC Options -dFPC_HEAPTRC_EXTRA eingetragen.
Dann auf OK und Only FPC.

Edit: 32 Aufrufe haben immer noch nicht gereicht, aber jetzt kann ich den Wert ja an meine Bedürfnisse anpassen.

Antworten