Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   [FMX] Debugausgaben (https://www.delphipraxis.net/163540-%5Bfmx%5D-debugausgaben.html)

wurzelzwerg 3. Okt 2011 17:17

[FMX] Debugausgaben
 
Moin,
Wie erzeugt man in Feueraffen-Anwendungen Debugausgaben?
OutputDebugString gibts da ja scheinbar nicht.

Union 3. Okt 2011 19:35

AW: [FMX] Debugausgaben
 
Mit DebugPrint(), das funktioniert wie die Format-Funktion.

wurzelzwerg 3. Okt 2011 20:45

AW: [FMX] Debugausgaben
 
Ahh, Danke :thumb:

wurzelzwerg 5. Okt 2011 20:16

AW: [FMX] Debugausgaben
 
Ich bekomm da keine Ausgabe ins Ereignisprotokoll. :?

Delphi-Quellcode:
DebugPrint('text1', 'text2')
oder
Delphi-Quellcode:
DebugPrint('text', '%d', [i])
müsste doch funktionieren?
Delphi-Quellcode:
uses DebugUtils
.

Muss man evtl. noch was einstellen?

Union 5. Okt 2011 20:21

AW: [FMX] Debugausgaben
 
Was meinst Du mit Ereignisprotokoll? Doch nicht das von der Delphi IDE?

wurzelzwerg 5. Okt 2011 20:30

AW: [FMX] Debugausgaben
 
Ja, von der IDE. Da wo sonst OutputDebugString landet.

Union 5. Okt 2011 21:12

AW: [FMX] Debugausgaben
 
So eine Redirection funktioniert m.E. nicht, Du musst Dir das in der Mac Console ansehen.

himitsu 5. Okt 2011 21:37

AW: [FMX] Debugausgaben
 
Wieso nicht?

Genauso wie OutputDebugString in Windows abgefangen und dort angezeigt wird,
könnte man es doch vermutlich auch im Mac wegfangen und der dort installierte Debugserver schickt es dann zur DelphiIDE.

Mangels Mac hatte ich es nicht ausproiert, aber Debuggen sollte man die Macanwendung doch auch können?
Wäre ja blöde, wenn man das Teil vom Windows aus debuggen kann, aber für diese "Debugausgaben" dann doch direkt in den Mac gucken muß.

Union 5. Okt 2011 21:53

AW: [FMX] Debugausgaben
 
Das wäre toll. Das müsste dann PAServer und Client machen. Leider sagt die "Dokumentation" nichts darüber. Obwohl über TCP bestimmt leicht zu realisieren.

wurzelzwerg 5. Okt 2011 21:57

AW: [FMX] Debugausgaben
 
Hmm. Auf dem Mac ist auch nix zu sehen. (evtl will man das Prog ja gar nicht auf dem Mac)

Hängt das evtl mit den "Conditions" zusammen, also der erste Parameter von DebugPrint?
Das steht in DebugUtils:
/// Conditionally outputs a formatted string to the debugging output. The condition
/// is controlled by the environment variable <code>DEBUG_CLASS</code>.

wurzelzwerg 7. Okt 2011 12:33

AW: [FMX] Debugausgaben
 
Keine Idee was man bei "Cond"(1.Parameter) übergibt?

Neutral General 7. Okt 2011 12:39

AW: [FMX] Debugausgaben
 
Wahrscheinlich die Bedingung wann die Ausgabe angezeigt werden soll. Also wenn du "true" schreibst sollte es immer ausgegeben werden.
(Soweit meine Theorie)

wurzelzwerg 7. Okt 2011 13:04

AW: [FMX] Debugausgaben
 
Nee, leider nicht.
Das müssen irgendwelche strings sein die in DEBUG_CLASS definiert sind.
Allerding finde ich diese Umgebungsvariable nicht.

Union 7. Okt 2011 16:48

AW: [FMX] Debugausgaben
 
Die setzt Du in der .plist Deiner Anwendung oder in ~/.MacOSX/environment.plist (Reboot). Ein * kann als Wildcard verwendet werden.
Code:
<key>LSEnvironment</key>
<dict>
<key>DEBUG_CLASS</key>
<string>MeinString1:MeinString2</string>
</dict>

wurzelzwerg 7. Okt 2011 23:58

AW: [FMX] Debugausgaben
 
Zitat:

Die setzt Du in der .plist Deiner Anwendung
Danke, aber die wird doch bei jedem kompilieren wieder überschrieben.
~/.MacOSX/environment.plist find ich nicht.

Ich brauch das aber auf Windows.
Hätte erwartet dass man das in den Dephi-Projekteinstellungen macht.:roll:

Union 8. Okt 2011 13:00

AW: [FMX] Debugausgaben
 
Zitat:

Ich brauch das aber auf Windows.
Hätte erwartet dass man das in den Dephi-Projekteinstellungen macht.
Das Programm wird doch aber auf dem Mac debugged. Der PAServer sorgt nur für den Datenaustausch zwischen der unter Windows laufenden IDE und dem Mac. Deshalb muss die Einstellung auf auf. bzw. für den Mac gemacht werden.
Zitat:

~/.MacOSX/environment.plist find ich nicht
... und das ist auch gut so ;) Du musst sowohl Verzeichnis als auch Datei erst einmal anlegen. Und danach booten bzw. neu anmelden. Beachte das X in OSX. Es ist ein Unix, dass durch eine schicke Oberfläche vor dem Benutzer verborgen wird. Aber wehe wenn man tiefer einsteigen will. Dann wird diese Oberfläche nämlich hinderlich. Man landet dann zwangsläufig in der bash.

Eine Kurzbeschreibung findet sich in http://www.astro.washington.edu/user...quaEnvVar.html.

Allerdings wird mit XCode das überall beschriebene PropertyListEditor seit einiger Zeit scheinbar nicht mehr mitinstalliert.

wurzelzwerg 9. Okt 2011 10:54

AW: [FMX] Debugausgaben
 
Zitat:

Das Programm wird doch aber auf dem Mac debugged. Der PAServer sorgt nur für den Datenaustausch zwischen der unter Windows laufenden IDE und dem Mac. Deshalb muss die Einstellung auf auf. bzw. für den Mac gemacht werden.
FM-Apps kann man doch auch nur für Windows machen, daher die Frage: Wo ist DEBUG_CLASS bei Windows?

Für Mac:
Ich nehme an dass du mit "plist der Anwendung" diese info.plist in der Anwendung meinst(Paketinhalt).
Die wird jedesmal neu erzeugt, also müssten das doch Projekteinstellungen sein.(es ist keine IOS-App)
Sowas global zu setzen macht für mich iregendwie keinen Sinn.

Union 9. Okt 2011 11:04

AW: [FMX] Debugausgaben
 
DEBUG_CLASS ist eine ganz normale Environment-Variable. Allerdings musst Du ein anderes Trennzeichen als unter X verwenden, ich denke Semikolon anstelle von Doppelpunkt.

wurzelzwerg 9. Okt 2011 13:39

AW: [FMX] Debugausgaben
 
Kein Wunder dass das auf meinem Mac nicht funktioniert:
http://stackoverflow.com/questions/6...ironment-plist

Unter Windows ists auch nutzlos da WriteLn verwendet wird. :roll:

Union 9. Okt 2011 13:42

AW: [FMX] Debugausgaben
 
Hast Du auch 10.7 Lion? Lustisch, gell.

wurzelzwerg 9. Okt 2011 19:43

AW: [FMX] Debugausgaben
 
Ja, 10.7 :|
Hab mir das jetzt selbst gebastelt, hoffe das geht auch bei IOS.
Den Kram mit Umgebungsvariablen brauch ich nicht.
Delphi-Quellcode:
unit Debug;

interface

uses
{$IFDEF MSWINDOWS}
  Winapi.Windows,
{$ENDIF}
  System.SysUtils;

procedure DebugPrint(Text: string); overload;
procedure DebugPrint(Fmt: string; const Args: array of const); overload;

implementation

procedure DebugPrint(Text: string);
begin
{$IFDEF DEBUG}
{$IFDEF MSWINDOWS}
  OutputDebugString(PChar(Text));
{$ENDIF}
{$IFDEF MACOS}
  WriteLn(Text);
{$ENDIF}
{$ENDIF DEBUG}
end;

procedure DebugPrint(Fmt: string; const Args: array of const);
begin
{$IFDEF DEBUG}
{$IFDEF MSWINDOWS}
  OutputDebugString(PChar(Format(Fmt, Args)));
{$ENDIF}
{$IFDEF MACOS}
  Writeln(Format(Fmt, Args));
{$ENDIF}
{$ENDIF DEBUG}
end;

end.

Union 9. Okt 2011 20:20

AW: [FMX] Debugausgaben
 
Bei IOS musst Du dann wohl NSLog(NSString()) verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz