11. Debugging¶
11.1. Dialogy¶
Stderr je zachycen v bufferu, který je prohlížen při ukončení programu. Je-li v bufferu nalezena jakákoliv vážná chyba (tracebacky, atp), je celý jeho obsah poslán do nástroje pro hlášení chyb a uživatel má možnost chybu hlásit. Máte-li podezření, že se vyskytly nezaznamenané chyby, můžete nastavit proměnnou prostředí THGDEBUG na jakoukoliv hodnotu, čímž vyřadíte ukládání stderr do bufferu.
Máte-li elementární znalost Pythonu, můžete také použít:
thg --debugger <command>
Chcete-li vyřadit dělení nástrojem thg, můžete buď zadat proměnnou prostředí THG_HGTK_SPAWN, nebo přidat parametr k CLI příkazu ‚–nofork‘.
11.1.1. Windows¶
Pro odstranění závad např. ve Verpánku, zadejte tyto příkazy do konzoly cmd.exe, nacédované do repozitáře:
set THGDEBUG=1
thg --nofork log
11.2. Extenze shellu¶
Způsob odladění závisí na platformě.
11.2.1. Windows¶
Viz také Debugging with the shell kde jsou informace o spuštění a testování extenzí shellu ve Windows.
- Nástroj DbgView ze sady SysInternals odchytí chybovou zprávu
- z extenze shellu. Shell ovšem ladící informace neemituje implicitně. Je nutné to povolit editací klíče registru, definovaného v
win32/shellext/DebugShellExt.reg
- v repozitáři TortoiseHg. Dvojklikem na souboru můžete načíst klíč do svého registru.
Jinou možností je opustit aplikaci ThgTaskbar a spustit ji z příkazového řádku. Ladící informace jsou potom emitovány v otevřené konzole.
11.2.2. Nautilus¶
Ladění se provádí prostřednictvím proměnné DEBUG_THG
pro testování v odlišném procesu:
DEBUG_THG=Ne TMPDIR=/tmp/anydir/ --no-desktop nautilus [path]
pro testování v hlavní instanci:
nautilus -q DEBUG_THG=NOe nautilus
pro permanentní ladění zadejte DEBUT_THG v souboru, který je načítán při spuštění seance (~/.profile, ~/.xprofile)
Velká písmena v DEBUG_THG označují moduly. Pouze O a N u OverlayCache a Nautilus, jsou podporované názvy modulů. Malá písmena označují části. Podporováno je pouze e, označující chybové zprávy.
Pro restartování nautilus použijte buď
- killall nautilus (seance restartuje nautilus automaticky, stdin a stdout jdou do ~/.xsession-errors)
- nautilus -q; nautilus (stdin a stdout jsou v konzole)