Ever wondered how does the ever-famous gdb tool work? How do breakpoints work? How does single stepping work? All tools that you may use in day-to-day life, but do you actually know how they work? During this talk, we will deepdive into the numerous tools Linux exposes that you can use to check and modify the state of another running process. Of course, most of it wouldn't be possible with just Linux support, so we will also have a brief look at the available hardware support. Think debug registers and special interrupts. By the end of this talk, hopefully you will walk away with a refreshed knowledge of the interesting world of debuggers.
Levente is a systems software engineer, currently studying at Imperial College London for his bachelor degree, as well as working on low-level performance of mission critical systems in Chicago. Previously, he interned at Apple and at Red Hat, working on operating systems. An avid computer enthusiast, he created his own UNIX-like operating system kernel from scratch, capable enough to run GCC and various well-known utilities. His other interests include spreading the spirit of the Open Source (Levente serves as a Fedora Ambassador), running, playing squash and tasting tea.