Debugging von Firefox bzw. Thunderbird

Manchmal kommt es vor, dass nur die Rädchen bei Thunderbird drehen – aber nix passiert. Auch im „Aktivitäten“-Fenster unter Extras sieht man u.U. nix.

Weennn man sich aber auf die Kommandozeile begibt (Windowstaste + r, dann „cmd“ eingeben) – dann kann man den Mozillaprogrammen doch etwas Infos aus den Rippen leiern.

Zuerst setzt man, per Umgebungsvariable, den zu überwachenden Programmteil (POP3, IMAP, SMTP, all – es gibt noch weitere, die habe ich aber noch nicht gefunden..) und das Level, mit welchem geloggt werden soll:

  • 0 = PR_LOG_NONE: nichts wird protokolliert
  • 1 = PR_LOG_ALWAYS: ich würds als „wichtiges wird protokolliert“ übersetzen
  • 2 = PR_LOG_ERROR: Fehler
  • 3 = PR_LOG_WARNING: Warnungen
  • 4 = PR_LOG_DEBUG: Debug-Nachrichten, Hinweise
  • 5: Alles!

Man tippt also, in der Kommandozeile, z.B.
set NSPR_LOG_MODULES=IMAP:4

Das Beispiel ist bei Windows. Für Linux/macOS schreibt man statt „set“ „export“, also

export NSPR_LOG_MODULES=IMAP:4

Man kann noch weitere Optionen angeben, nämlich:

  • timestamp: setzt vor die Logzeilen einen Zeitstempel wie „2020-12-01 21:24:26.049906 UTC – „
  • append: überschreibt bei erneutem Programmaufruf nicht das alte Log (passiert ohne die Angabe)
  • sync: Das Programm buffert normalerweise die Logausgabe. Mit „sync“ wird sofort das Log geschrieben. Verlangsamt das Programm ggf.
  • bufsize:<Größe>: gibt eine Buffergröße an (k.A. welche Einheit…)

Ein erweitertes Beispiel sähe dann so aus:

set NSPR_LOG_MODULES=timestamp,mozStorage:5

Dann muss noch bestimmt werden, wohin das Log geschrieben wird. Beispiel Windows:

set NSPR_LOG_FILE=%HOMEDRIVE%\%HOMEPATH%\Desktop\mozilla-debug.log

Beispiel Linux/macOS:

set NSPR_LOG_FILE=/tmp/mozilla-debug.log

Damit Thunderbird bzw. Firefox dann auch wirklich loggt muss das Programm – ohne besondere weitere Optionen – aus der Kommandozeile gestartet werden. Den Pfad kann man aus den Eigenschaften der Verknüpfung des Programms auf dem Desktop bzw. der Taskleiste auslesen: Rechte Maustaste auf die Verknüpfung und dann nochmal auf das eigentliche Programm darin die rechte Maustaste drücken. Dann sollte unten „Eigenschaften“ stehen. Beispiele:

Linux: thunderbird
Windows: c:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe

Dann sollte die Logdatei auftauchen. Der Inhalt der Log-Datei sieht dann z.B. so aus:

[(null) 2268: IMAP]: D/IMAP ImapThreadMainLoop entering [this=1DE1D000]
[(null) 2268: Main Thread]: I/IMAP 1D11B000:ml11.serverdomain.org:NA:SetupWithUrlCallback: clearing IMAP_CONNECTION_IS_OPEN
[(null) 2268: IMAP]: I/IMAP 1D11B000:ml11.serverdomain.org:NA:ProcessCurrentURL: entering

Hier noch ein paar interessante Links zu dem Thema:

  • Mozillas Developer Docs (solange die noch da sind…): https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR/Reference/NSPR_LOG_MODULES
  • Error-Liste https://james-ross.co.uk/mozilla/misc/nserror_list
  • https://www.laub-home.de/wiki/Firefox_-_sec_error_bad_signature