jOpenSpace 2024 - Jan Vondrouš - IntelliJ IDEA few advanced debugging features

Поділитися
Вставка
  • Опубліковано 24 жов 2024
  • Přednášející z firmy elevel představuje několik tipů na používání debuggeru v IntelliJ IDEA. Začíná tím, že ho překvapilo, kolik funkcí debuggeru nevyužíval, a rozhodl se některé z nich ukázat. I když příklady jsou v Kotlinu, všechny ukázané postupy fungují stejně i v Javě.
    První ukazuje možnost restartování metody pomocí funkce *reset frame*, což umožňuje opakované spuštění metody od začátku. Další tip zahrnuje možnost ukončit metodu předčasně a určit, co má vrátit.
    Dále předvádí metodu, která často způsobuje chybu. Pomocí debuggeru ukazuje, jak se vrátit na konkrétní místo v kódu a zkusit jej znovu spustit. K tomu využívá Jump to Line plugin, který umožňuje přeskočit na určitou řádku v kódu bez nutnosti znovu spouštět celou aplikaci.
    Další funkcí je *trace point*, která umožňuje sledovat určité body v kódu, aniž by debugger aplikaci zastavil. Přednášející ukazuje, jak lze vyhodnotit proměnné na breakpointu a zalogovat výrazy bez nutnosti používat tradiční `print` výstupy. Výhodou je, že tyto výstupy nejsou součástí kódu, takže je nelze omylem zkompilovat a pushnout do produkce.
    Následující část se zaměřuje na sledování konkrétních vláken (threadů). Přednášející ukazuje, jak lze označit určitý objekt pomocí mark object a používat ho ve výrazech nebo podmínkách. Také vysvětluje, jak sledovat objekty v paměti pomocí funkce *show objects in memory*, která zobrazuje všechny instance objektů daného typu a jejich aktuální hodnoty.
    Přednášející pokračuje demonstrací funkce *Stream debugger*, která umožňuje sledovat operace nad streamy v Kotlinu i Javě. Ukazuje, jak pomocí tohoto nástroje lze krokovat jednotlivé transformace nad datovými strukturami.
    V závěrečné části se věnuje vlastním rendererům*, což jsou vlastní způsoby zobrazení datových struktur v debuggeru. Pomocí anotace *Jetbrains renderer lze přizpůsobit, jak jsou zobrazeny konkrétní třídy v debuggeru, což může být užitečné při práci na projektech.
    Na závěr přednášející shrnuje hlavní body: instalace Jump to Line pluginu, používání trace pointů místo `print` výpisů, zapnutí zobrazování návratových hodnot metod, označování objektů pro snadnější sledování a využití Stream debuggeru a *Custom renderers*. Dále zdůrazňuje, že sledování paměti během debugování je velmi užitečné.

КОМЕНТАРІ •