27 Şubat 2023 Pazartesi

IntelliJ Idea Debug İpuçları - Object Marking

Giriş
Açıklaması şöyle
Marking is effectively the declaration of a new reference to an object. Like declaring a new global variable. 

Developers often track issues where they literally write on a piece of paper the object ID (or pointer value) for an object they're looking at. With object marking, we can give an instance a specific global name. We can then reference that instance out of any scope...

E.g., when you're debugging and want to make sure that the object you're looking at in a method is the one that will be sent to another method (and not a cloned copy). Just mark the object with a name. Then, in the other method, compare the argument to the marked object. 

You can use this in conditional breakpoints to stop at the right location. It's an amazingly useful feature.
Şeklen şöyle

Daha sonra marking ile işaretli olan nesne için bir global değişken tanımlarız. Şeklen şöyle. Burada Label deniliyor ancak aslında global bir değişken ismi.
Eğer istersek bu değişkeni condition olarak kullanabiliriz. Şeklen şöyle


 
Örnek
Şöyle yaparız
Thread.currentThread() == MyThread_DebugLabel

Hiç yorum yok:

Yorum Gönder