WeAreDevelopers LIVE • Jan 19, 2024

Debugging Unveiled: Exploring Debugger Internals and Hidden Gems

Johannes Bechberger

Why do conditional breakpoints silently cripple your JVM performance? Uncover the hidden mechanics of Java debuggers to eliminate runtime overhead and master advanced troubleshooting workflows.

Pause
Mute Enter Fullscreen
#1 about 6 min

Using debuggers to understand software exceptions

Walking through a line counter program to demonstrate how stack traces guide software troubleshooting.

#2 about 2 min

Exploring the high-level Java platform debugging architecture

Tracing the communication layers connecting modern IDE clients directly to the runtime virtual machine.

#3 about 2 min

Best practices for remote JVM debugging

Configuring connection ports in development environments to attach debug agents remotely without exposing vulnerabilities.

#4 about 5 min

Triggering debug sessions with JVM parameters

Bootstrapping agents to pause execution precisely when target exceptions manifest during unpredictable application workloads.

#5 about 3 min

Inspecting Java debug wire protocol communication

Capturing raw socket events to reveal the high volume of request replies coordinating breakpoint events.

#6 about 7 min

Analyzing lifecycle events of a debugging session

Detailing the handshake sequence from initial class loading up to the first suspended thread execution.

#7 about 2 min

Disconnecting versus terminating debug processes in IDEs

Weighing whether to gracefully detach an active session or forcibly kill the entire virtual machine process.

#8 about 7 min

Uncovering the performance impacts of conditional breakpoints

Highlighting the network latency caused by synchronized back-and-forth roundtrips when checking complex boolean expressions.

#9 about 5 min

Optimizing breakpoint conditions via protocol tooling alternatives

Exploring experimental prefetching approaches and debug adapter specifications to evaluate state logic locally.

#10 about 3 min

Understanding JIT compilation and breakpoint de-optimization

Explaining how inserting single execution stops forces the runtime to discard highly optimized machine code.

#11 about 5 min

Modifying execution flow using native debugger functions

Altering memory state and variables mid-execution alongside advanced maneuvers like forcing early method returns.

#12 about 3 min

Evolving debugging tools across software language ecosystems

Comparing enterprise tooling capabilities with established remote debugging adapters in communities like the python ecosystem.

#13 about 8 min

Addressing condition evaluation and memory inspection questions

Clarifying where execution stops process logic and how debuggers preserve class structure invariants naturally.

#14 about 7 min

Exploring JVM crashes and future debugging trends

Tackling failure states involving native bindings alongside speculative reflections on handling massive virtual thread pools.

Matching moments

2:04 min

Utilizing the JVM tool interface for dynamic code changes

Marco Sussitz Marco Sussitz · World Congress 2026 Europe

2:14 min

Compiling and configuring the OpenJDK for direct debugging

Marco Sussitz Marco Sussitz · World Congress 2026 Europe

4:09 min

Tooling challenges with debugging, logging, and IDEs

Gonzalo Ortiz Jaureguizar Gonzalo Ortiz Jaureguizar · World Congress 2026 Europe

2:53 min

Introduction to live debugging and code hot swapping

Marco Sussitz Marco Sussitz · World Congress 2026 Europe

2:04 min

Discovering application crashes caused by excessive code hot swapping

Marco Sussitz Marco Sussitz · World Congress 2026 Europe

2:11 min

Debugging challenges inside closed source cloud native environments

Gerta Sheganaku +1 · World Congress 2023

Upcoming sessions on this topic

Open session

Java is Coming for Python’s Lunch: The Rise of JVM AI Agents

  • Frederik Pietzko

    Jetbrains

    Developer Advocate

Open session

How We Cut Our API's p99 Latency from Minutes to Under a Second

  • Deepak Agrawal

    Atlassian

    Principal Software Engineer

Open session

From Profiler to Production: Measuring What Actually Matters in React & React Native

  • Andrei Tazetdinov

    Dynatrace

    React Native Developer

Open session

Beyond File Dumps: Context Engineering for Coding Agents

  • Animesh Dutta

    Arm

    Senior Software Engineer

Open session

What I Got Wrong Shipping an MCP Server for Live Infrastructure

  • Pritesh Kiri

    Harness

    Developer Relations Engineer

Open session

Teaching AI Coding Agents to Build It Right the First Time

  • Sajeetharan Sinnathurai

    Microsoft

    Principal Product Manager