Pagina1 van 1
Forum

Welkom bij de Tweaking4All gemeenschapsforums!
Voor je gaat deelnemen, bekijk de Forum Regels!

Specifieke onderwerpen: Start het onderwerp met de naam van het programma of systeem.
Bijvoorbeeld “MacOS X – Jouw vraag“, of bijvoorbeeld “MS Word – Jouw Tip of Truc“.

Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent aangezien er waarschijnlijk geen vertaling beschikbaar is.



Deel:
Meldingen
Alles wissen

[Opgelost] Lazarus - MacOS X - Writeln debug output voor GUI Applicaties

2 Berichten
1 Gebruikers
0 Reactions
2,302 Bekeken
 Hans
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2864
Topic starter  

Ik maak regelmatig wat kleine programmaatjes op mijn Mac m.b.v. Lazarus Pascal.
Indien mogelijk hercompileer ik die vaak onder Linux en/of Windows.

Een ding dat me altijd mateloos irriteert is dat het niet erg voor de hand liggend is hoe je korte stukjes tekst naar b.v. een dub venster kunt sturen zodat je wat handigheidjes kunt doen als je probeert jouw programma te debuggen.

Na wat zoeken en proberen heb ik de volgende methode gevonden:

1. Open een Terminal venster en type:

tty

Je krijgt dan een antwoord zoals b.v.:

/dev/ttys000

2. In Lazarus ga je naar "Tools" - "Options" - "Debugger" - "General" en voer je dit antwoord (/dev/ttys000) in bij het "ConsoleTty" veld.

Vanaf nu zal de output van een "Write" of "WriteLn" in dit terminal venster worden weergegeven.

Merk op dat als je nog geen Terminal venster open hebt staan voor je een programma vanuit de Lazarus IDE start, dat de write en writeln commando's stilletjes falen en er dus geen output of foutmeldingen verschijnen.

Tip : Niet een gek idee om met een compiler directive te werken zoals b.v. als je nog aan het ontwikkelen bent:

{$DEFINE DebugToConsole}
...
{$IFDEF DebugToConsole} Writeln('Debug informatie'); {$ENDIF}

Uitschakelen van de writeln debug info kan dan door {$DEFINE DebugToConsole} uit te commenteren:

// {$DEFINE DebugToConsole} 

   
BeantwoordenCiteren
 Hans
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2864
Topic starter  

Je kunt natuurlijk, om type werk te besparen, net na het trefwoord "implementation" het volgende doen:

{$DEFINE DebugToConsole}
procedure debug(txt:string);
begin
  {$IFDEF DebugToConsole}
  Writeln(txt);
  {$ENDIF}
end;            

Zodat je makkelijk debug berichten kunt sturen d.m.v.

debug('debug bericht');

   
BeantwoordenCiteren
Deel: