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.1.2. Linux/MacOSX

Podobně jako ve Windows:

export 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ď

  1. killall nautilus (seance restartuje nautilus automaticky, stdin a stdout jdou do ~/.xsession-errors)
  2. nautilus -q; nautilus (stdin a stdout jsou v konzole)