Program JavaZone

Lyntale Torsdag 3. september

Debugging Class Loading with GDB

Room 6

Engelsk 20 min JVM JVMTI C++ GDB

Marco Sussitz

Marco Sussitz is an engineer at Dynatrace who works at the boundary of Java and C++. He writes JVMTI agents, instruments bytecode, and digs into JIT, memory, and thread behavior. You’ll often find him sorting out class loaders or reading the spec longer than he should. Before Dynatrace, he worked on cloud video encoding with FFmpeg. In his off hours, he’s bouldering or in the mountains.

Have you ever wondered why a particular class was loaded at that exact moment? Getting to the bottom of it can be surprisingly hard.
I recently encountered a bug with a particularly nasty linkage error in which classes were loading unexpectedly, and I needed to figure out what triggered that. In this talk, I’ll walk through the steps I used to track it down. We’ll build a slowdebug JVM, attach GDB, and use breakpoints and inspection to identify the precise cause of the class loading.
If you’re curious about how the JVM really works and want to peek under the hood, this talk is for you.

Java developers who want to know how the JVM really works. Ideally, the audience should have some knowledge of class loading. No C++ knowledge will be necessary for this talk.

  1. The AI puppet dance Room 1
  2. Digipost om UX i Norges nye virksomhetslommebok Room 2
  3. A Practical Guide to European Public Cloud Providers Room 3
  4. Sikkerhet fra mangfold Room 4
  5. Domain-driven web APIs Room 5
  6. Concurrency testing on the JVM Room 7
  7. You're absolutely right, it was your home directory! Room 8