Shai Almog

Talk to the Duck - Secrets of the Debugging Masters

What if you could debug your code by going back in time? Discover how "Jump to Line" and other underutilized features can transform your workflow.

Talk to the Duck - Secrets of the Debugging Masters
#1about 3 minutes

The humbling power and mindset of debugging

Debugging is a humbling experience that grounds developers and managers by revealing their own simple mistakes.

#2about 2 minutes

Move the instruction pointer with jump to line

Avoid restarting the debugger by using the "jump to line" feature to drag the execution pointer backward or forward to re-run or skip code.

#3about 1 minute

Use tracepoints for dynamic, non-suspending logging

Add dynamic log statements using tracepoints, which are non-suspending breakpoints that evaluate and print expressions without pausing the application.

#4about 3 minutes

Use advanced breakpoints for methods and exceptions

Target multiple methods at once using wildcard method breakpoints and filter out internal JVM exceptions by applying class filters to exception breakpoints.

#5about 4 minutes

Inspect state with watch expressions and object marking

Enhance the watch area by displaying method return values and using object marking to save an object reference for later comparisons in conditional breakpoints.

#6about 2 minutes

Visualize reactive code with the stream debugger

Use the stream debugger tool to break down and visualize each stage of a Java stream, showing how each element is transformed through the pipeline.

#7about 5 minutes

Create custom data views with debug renderers

Customize how objects are displayed in the watch area by creating custom renderers that can execute code, such as querying a database for a record count.

#8about 2 minutes

Track object allocations with the memory debugger

Use the memory view to identify memory leaks by tracking all new object instances created between two steps and viewing their full allocation stack traces.

#9about 1 minute

Understand the risks of traditional remote debugging

Traditional remote debugging in production is extremely risky, creating major security vulnerabilities, stability issues, and privacy compliance problems.

#10about 5 minutes

Use developer observability for safe production debugging

Developer observability tools allow for safe production debugging by adding dynamic logs, non-breaking snapshots, and metrics within a secure sandbox.

Related jobs
Jobs that call for the skills explored in this talk.
SabIna compys

SabIna compys
Vienna, Austria

Remote
20-100K
Intermediate
JavaScript
.NET
+1

Featured Partners

Related Articles

View all articles
Dev Digest 113 - Debugging above the cloud
Hello there and welcome to Dev Digest 113! This time, we got an old friend in the sky back, jQuery asks us to upgrade and AI is eating the web. Also, are you sure the LLM you use is secure against code injection?News and ArticlesGood news everyone! N...
Dev Digest 113 - Debugging above the cloud
CH
Chris Heilmann
Dev Digest 134 - Where pixels sing?
News and ArticlesWeAreDevelopers LIVE Data and Security Day is on Wednesday, 25/09/2024. Learn about OPC UA Updates, Best Practices for Using GitHub Secrets, Passwordless Web 1.5, Emerging AI Security Risks, Data Privacy in LLMs and get a chance to t...
Dev Digest 134 - Where pixels sing?
CH
Chris Heilmann
Dev Digest 109 -Egg-citing things…
As we are heading into the Easter break, here are some things to spend some time on. There's resources on improving the performance of your code and you hear from the winners of CODE100 Amsterdam what it was like to be on stage. Also, hang tight as t...
Dev Digest 109 -Egg-citing things…
CH
Chris Heilmann
Dev Digest 125 - Duck and Cover
This issue was written live at the WeAreDevelopers World Congress in Berlin with us being incredibly busy, but this shouldn't mean you don't get some hot resources. News and ArticlesLet's start with AI news: Google and Microsoft consume more power th...
Dev Digest 125 - Duck and Cover

From learning to earning

Jobs that call for the skills explored in this talk.

Full-Stack Developer

Friedrich Kicherer GmbH & Co. KG
Ellwangen (Jagst), Germany

Junior
Intermediate
Senior
GIT
Docker
JavaScript