2010-02-03 3 views
7

Es war einmal, dass stdout in das Konsolenprotokoll ging, das von Console.app angezeigt wurde. Ich hatte einige Probleme mit einem Firefox-Plugin (siehe andere Fragen, sorry über die Spam ...) und ich versuchte printfs zu benutzen, um zumindest zu sehen, ob ich mein Plugin startete.Wo ist Stdout für eine Mac App?

Ich habe gerade heute festgestellt, dass mein Konsolenprotokoll seit dem 6. Januar nicht mehr aktualisiert wurde. (Ja, ich benutze den Rechner seit einem Monat.) Jetzt bin ich nicht das einzige Programm, das die Konsole benutzt log, also müssen alle diese Nachrichten SOMEWHERE sonst gehen.

Weiß jemand wo?

Das Problem war, dass syslogd wurde gebrochen. Es ist jetzt behoben.

+1

Dies könnte auf superuser.com gehören, nicht sicher ... Aber ich habe auch das gleiche Problem bemerkt ... – Josh

+0

Nun, es programmiert mich, weil ich printf verwende, um dorthin zu gelangen ... aber ja, Superuser kann mehr wissen ... Wann hast du angefangen? –

Antwort

3

printf sollte zur Console.app gehen. Es hört sich an, als wäre deine kaputt.

Eine gute Möglichkeit, Ihr Plugin zu debuggen, wäre, FireFox als benutzerdefinierte ausführbare Datei Ihres XCode-Projekts festzulegen und im Debugger auszuführen. Dann würde die XCode-Konsole die Ausgabe abfangen. In diesem Fall verwenden Sie auch einfach einen Haltepunkt, um zu sehen, ob Ihr Plugin geladen wurde anstelle von printf.

+0

Vielleicht habe ich vorher etwas falsch gemacht, aber in der Vergangenheit, als ich das versucht habe, ist xcode verwirrt, weil Firefox nicht mit Symbolen kompiliert wurde ... –

+0

Sie werden keine Symbole von Firefox bekommen, aber Sie werden in der Lage sein um Haltepunkte in Ihrem Plug-in-Code festzulegen. –

+0

Wenn ich dies versuche, stürzt firefox ab, fragt, ob Sie neu starten möchten, und stürzt dann wieder ab, Schaum spülen wiederholen. –

3

Lösung: Das Problem war nicht, dass stdout nicht zur Konsole ging. Das Problem war, dass die Konsole nicht geschrieben wurde, weil syslogd fehlerhaft war. Syslogd wurde Sandboxed aus irgendeinem Grund, und so NICHTS wurde auf der Konsole seit dem 6. Januar geschrieben.

Die Lösung war, den Kommentar "auskommentieren, wenn Sie Sandbox syslogd auskommentieren" von LaunchDaemons/com. apple.syslogd.plist.

Die Lösung kam von superuser.com .... danke!

+1

Haben Sie den Link zur Superuser-Frage? – Albert

+0

Auch ich habe/sehe diesen Abschnitt nicht. Die Datei ist im Bplist-Format. – Albert