Johannes Bechberger

Debugging Unveiled: Exploring Debugger Internals and Hidden Gems

What if your debugger is secretly slowing down your application? Uncover the hidden performance costs of features like conditional breakpoints.

Debugging Unveiled: Exploring Debugger Internals and Hidden Gems
#1about 5 minutes

Why debuggers are an essential developer tool

Debugging helps find and fix bugs, analyze code, add logging, and change behavior on the fly.

#2about 4 minutes

Understanding the Java Platform Debugger Architecture (JPDA)

The JPDA consists of the Java Debug Interface (JDI), the Java Debug Wire Protocol (JDWP), and the JVM Tool Interface (JVMTI) to connect an IDE to a JVM.

#3about 4 minutes

Exploring on-demand and remote debugging features

Use remote debugging to connect to any JVM and leverage on-demand features like starting a debug session when a specific exception is thrown.

#4about 12 minutes

A deep dive into the Java Debug Wire Protocol (JDWP)

The JDWP facilitates communication between the debugger and the JVM through a series of requests, events, and replies to manage state and execution.

#5about 7 minutes

How conditional breakpoints are emulated by the IDE

Since the JVM lacks native support, IDEs emulate conditional breakpoints by suspending the thread at every hit and evaluating the condition on the client side.

#6about 6 minutes

Optimizing conditions and the impact on JIT compilation

Improve performance by embedding complex conditions in the code or a separate method, and be aware that setting any breakpoint de-optimizes the method.

#7about 6 minutes

How features like HotSwap and Force Return are implemented

Features like HotSwap, setting values, and forcing returns are implemented using specific JDWP commands that directly instruct the JVM to modify its state.

#8about 15 minutes

Key takeaways and Q&A on debugger internals

A summary of debugging best practices is followed by a Q&A session covering topics like cross-language debugging and future trends like Project Loom.

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

d

Saby Company
Delebio, Italy

Junior

asasd

Expire

Remote
Junior

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
BB
Benedikt Bischof
Java Basics
In 1991,James Gosling invented a high-level, general-purpose, object-oriented andsecure programming language and called it OAK (after a tree in front of hiswindow). And four years later, in 1995, it was renamed after one of the GreaterSunda Islands: ...
Java Basics
BB
Benedikt Bischof
Using Java 17 latest features in real world projects
Welcome to this issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Ron Veen who introduced the audience to some of the most interesting features that got added to the Java language.About the speaker:Ron is a hig...
Using Java 17 latest features in real world projects
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…

From learning to earning

Jobs that call for the skills explored in this talk.