Тёмный

Practical Debugging at Scale: Do you Really Know How to Debug Effectively? 

IntelliJ IDEA, a JetBrains IDE
Подписаться 116 тыс.
Просмотров 7 тыс.
50% 1

Most of us didn't learn debugging in university and just "picked it up on the job". That is shocking for such a crucial skill, even if testing debugging knowledge is known to be challenging. However, it’s never too late to learn how to use these underutilized debugger capabilities that many developers don't know about:
- Object marking
- Tracepoints
- Memory tracing
- Jump to line
- Renderers
- And more
Speaker: Shai Almog
Shai is an entrepreneur, author, blogger, and open-source hacker. He has written five books, including "Practical Debugging at Scale: Cloud Native Debugging in Kubernetes and Production" (Apress), and he blogs about debugging at debugagent.com.
#debugging #debug #debugger #programming #jetbrains
Join us:
Website: jb.gg/website
Blog: jb.gg/blog
Twitter: / intellijidea
Facebook: / intellijidea
Download IntelliJ IDEA: jb.gg/download...
Top 15 IntelliJ IDEA shortcuts: jb.gg/Top15Int...

Опубликовано:

 

7 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 31   
@ahmedjaad4940
@ahmedjaad4940 Месяц назад
Every time I watch one of these videos I am amazed how much I don't know how to use Intellij effectively, even after almost a decade of using it.
@this-is-bioman
@this-is-bioman 8 дней назад
Jump to Line is what I have been always looking for! Why isn't this a standard feature of the IDE?
@debugagent
@debugagent 6 дней назад
Because it's very flaky, A standard feature of the IDE needs to work every time and this just doesn't work perfectly.
@this-is-bioman
@this-is-bioman 6 дней назад
@@debugagent maybe because it's an extension? How comes that Visual Studio has always had it and even Excel's VBA editor.
@debugagent
@debugagent 5 дней назад
@@this-is-bioman In native code I can theoretically just manipulate the instruction pointer to implement such a feature. This can result in the type of side effects that would make the debugging process harder rather than easier. The JVM adds a lot of complexities that make such manipulations impractical. There's a limit to where you can jump, stack is very well guarded etc. These are all great things but the end result is that the JVM just doesn't let you go to any arbitrary location. Even within the method there are some nuances due to the way the JVM is implemented (e.g inner classes, lambdas etc.). So this is a JVM issue, but I'd argue these limits make debugging easier in general since the environment is safer and more predictable.
@ortani
@ortani Месяц назад
Ótimo vídeo.
@Jebusankel
@Jebusankel Месяц назад
I've heard Richard Stallman say that he always runs his emacs with a debugger attached and an exception breakpoint
@MrMikomi
@MrMikomi 29 дней назад
30:21 I can't see "Show Thread Objects..." I've googled "intellij "show thread objects"" and nothing turns up.
@MrMikomi
@MrMikomi 29 дней назад
I've figured it out. It's context sensitive. If the variable is of type Thread you can see it.
@zebrastuhl4515
@zebrastuhl4515 21 день назад
Can I use the TraceLogging with a SpringBoot Application Running in Production?
@debugagent
@debugagent 14 дней назад
In theory yes but I would strongly suggest you don't do that. In production you should use observability and developer observability tooling which provide support for scale (clustering etc.) and also are designed for security/performance. JDWP (Java Debug Wire Protocol) wasn't designed for production debugging, it has flaws and performance issues.
@jxr1145
@jxr1145 Месяц назад
I would like to print the bytes read in a tracepoint in a method like this: public int read(byte[] b, int off, int len) throws IOException { return in.read(b, off, len); } I have access to b and off in the exit point of a method breakpoint. However, I would need to access the returned value, which unfortunately is not stored in a variable in this case (and I cannot modify this code). Does the debugger provide access to the return value in a method breakpoint? (BTW: I cannot just execute the read in the breakpoint, because of side effects.)
@debugagent
@debugagent Месяц назад
That's a great question, it's indeed a difficult situation. As far as I know there is no way to get the return value in this case and I do recommend to avoid such code in production. However, there might be a trick. You can try stepping into the read method in the underlying stream and it might include the return information in a way that you can use. This works even for JDK classes. However, if that class is commonly used and you don't want the tracepoint to print for every call of read, you can use breakpoint filters based on the stack trace. You can create a filter that will only trigger when a method is invoked by a specific class.
@mabanu7711
@mabanu7711 Месяц назад
🎉🙇🏿‍♀️ 1:02:26
@sagarvarade
@sagarvarade 14 дней назад
00:50 I think he is shy :)
@thejvmbender
@thejvmbender Месяц назад
that stream debugging button does not exist in my intellij, on the rightes of step into|stepover|....... stream debug button , why ?
@AntonArhipov
@AntonArhipov Месяц назад
Most likely it's hidden under the sub menu - the three dots icon on the right in the debugger tool view
@ahmedjaad4940
@ahmedjaad4940 Месяц назад
you must also stop the execution where there's a stream to debug
@MrMikomi
@MrMikomi Месяц назад
Do you have the latest version of intellij? It's a reasonably new feature I think.
@AntonArhipov
@AntonArhipov Месяц назад
@@MrMikomi the "Trace current stream chain" is not a new feature. It was introduced in 2017.
@MrMikomi
@MrMikomi Месяц назад
@@AntonArhipov How do you know this?
@TheDrezir
@TheDrezir Месяц назад
That plugin does not work for me :( jump to line
@debugagent
@debugagent Месяц назад
What isn't working? Did it install? Are you seeing the yellow arrow on the side when debugging? Notice that jumping to a line isn't perfect, you can't jump everywhere which is why this isn't a standard IDE feature.
@AntonArhipov
@AntonArhipov Месяц назад
It's a very limited feature. You can only skip a few statements inside the method
Далее
Code Folding in Neovim
11:22
Просмотров 17 тыс.
Best Code Editor? | Programming Tier List
0:50
Просмотров 1,2 млн
Прохожу маску ЭМОЦИИ🙀 #юмор
00:59
JEP Explained. JEP 482: Flexible Constructor Bodies
48:36
The Most Important Skill You Never Learned
34:56
Просмотров 200 тыс.
25 Computer Papers You Should Read!
9:11
Просмотров 76 тыс.
Swift creator Chris Lattner on Mojo & Roc
1:49:26
Просмотров 6 тыс.
The Simplest Tech Stack
9:38
Просмотров 109 тыс.
Debug Java Like a Pro in IntelliJ IDEA
17:28
Просмотров 44 тыс.
Why I’m Switching To Go in 2024
8:10
Просмотров 51 тыс.
Прохожу маску ЭМОЦИИ🙀 #юмор
00:59