Overview
Explore the intricacies of Delve, a debugger specifically tailored for the Go programming language, in this GopherCon 2015 talk by Derek Parker. Dive deep into the unique characteristics of Go that make traditional debuggers unfeasible, such as the runtime scheduler. Learn why a new debugger was necessary for Go and how Delve aims to solve problems with existing debuggers like GDB. Understand Go's non-traditional execution model, including stack management, defer statements, goroutines, and the Go scheduler. Discover how Delve handles context switches, channel operations, and runtime stack inspection. Get insights into compiler optimizations and how they affect debugging. Learn to start debugging with Delve, including how to debug standalone packages. Explore the history of Delve and its various commands for control flow and information gathering, including single-stepping through programs.
Syllabus
Intro
A DEBUGGER FOR THE GO PROGRAMMING LANGUAGE
WHY A NEW DEBUGGER?
GDB MUST BE DESTROYED
WHY DOES GO CONFUSE EXISTING DEBUGGERS?
STACK MANAGEMENT
DEFER STATEMENTS
THREADS VS GOROUTINES
GO SCHEDULER
LET'S INTRODUCE THE CAST OF CHARACTERS
NON-TRADITIONAL EXECUTION MODEL
CONTEXT SWITCHES
Channel Operations
RUNTIME STACK INSPECTION
COMPILER OPTIMIZATIONS
Start debugging with Delve
Debug standalone packages
HISTORY OF DELVE
COMMANDS: CONTROL FLOW
Single step through program
COMMANDS: INFORMATIONAL
Taught by
Gopher Academy