9 Ekim 2022 Pazar

IntelliJ Idea Debug İpuçları

Giriş
IntelliJ ile debug için Shai Almog tarafından gösterilen bazı açıklamalar burada. En önemli maddeler şöyle
Show method return values -> Debug işlemini yavaşlatır
IntelliJ Jump to Line -> Plugin gerektirir
Object Marking
Return Immediately
Drop Frame

1. Breakpoint İpuçları

2. Stream Debug


3. Debug Penceresi
Şeklen şöyle

Açıklaması şöyle
1. Show execution point
Başka bir frame'e gitsek bile, bu düğmeye tıklayınca breakpoint olan frame'e gider
2. Step over
Metodu atlar
3. Step in
Metodun içine girer
4. Force Step in
Açıklaması şöyle. Yani 2. madde durumunda kod bize ait değilse bile mümkünse kodu bulmaya çalışıyor, bulamazsa da kod üretip gösteriyor.
Q : Difference between "Step Into" and "Force Step Into" in the Intellij debugger?
A : From my own observation using the IntelliJ debugger over the years, if you try to step into a method call on a given line of code, the following will happen:

1. if the code being called be your own code, then the debugger will step into that method
2.  if the code being called be some third party library, then the debugger will ignore your request, and instead step over that line

By telling IntelliJ to force step into a line, in the case of a third party method, it will then try to find source code for that method. If it can't find source code, then it might show you an auto generated stub based on the byte code/library. But, there may not be any code shown, or if there is, it would be IntelliJ's best guess based on byte code.
5. Step out
Metoddan çıkar
6. Run to cursor
İmlecin olduğu yere kadar çalıştırır

7. Reset Frame veya Drop Frame
Bir metodun içindeysek ondan çıkar ve çağrıyı yapan yere gider. Yeni hali şeklen şöyle. Yeni ismi Reset Frame oldu. U dönüşü gibi olan sembol

Eski hali şeklen şöyle. Şekilde partitionLabels'da breakpoint var ve kod orada durmuş. Onu çağıran yere yani main'e gitmek için Drop Frame düğmesine tıklanır



Debug Oluğu (Gutter)
Burada şu düğmelervar
1. Resume program
2. View Breakpoints
3. Mute Breakpoints

Debug Oluğu (Gutter)

Remote JVM Debug
Docker üzerinde koşan uygulamayı debug için kullanılabilir
Shai Almog tarafından yazılan Remote Debugging and Developer Observability yazısı da önemli
Şeklen şöyle. Uygulama remote debug için hangi parametreler ile başlatıldıysa aynı parametrelerle ona bağlanıyor










Hiç yorum yok:

Yorum Gönder