Debugging ========== .. module:: debugging :synopsis: Debug problems in shell extension or dialogs 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 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'. 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 Linux/MacOSX ~~~~~~~~~~~~ Podobně jako ve Windows:: export THGDEBUG=1 thg --nofork log Extenze shellu --------------- Způsob odladění závisí na platformě. Windows ~~~~~~~ Viz také `Debugging with the shell `_ kde jsou informace o spuštění a testování extenzí shellu ve Windows. Nástroj :command:`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 :file:`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 :command:`ThgTaskbar` a spustit ji z příkazového řádku. Ladící informace jsou potom emitovány v otevřené konzole. 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ď 1) killall nautilus (seance restartuje nautilus automaticky, stdin a stdout jdou do ~/.xsession-errors) 2) nautilus -q; nautilus (stdin a stdout jsou v konzole)