├── .gitignore ├── README.md ├── Vagrantfile ├── debugme ├── deadlock │ ├── README.md │ ├── main.go │ └── solution │ │ └── main.go ├── goroutine-leak-1 │ ├── README.md │ ├── main.go │ └── solution │ │ └── main.go ├── goroutine-leak-2 │ ├── README.md │ └── main.go ├── memory-leak │ ├── README.md │ ├── main.go │ └── solution │ │ └── main.go ├── resolve-hostname │ ├── README.md │ ├── binary │ ├── core.gz │ ├── main.go │ └── solution │ │ └── main.go ├── ring-buffer │ ├── README.md │ ├── controller │ │ └── main.go │ ├── main.go │ └── solution │ │ └── main.go └── sqrt │ ├── README.md │ └── main.go ├── derek-parker.jpg ├── exercises ├── 00-introduction │ ├── README.md │ └── main.go ├── 01-starting-a-debugging-session │ ├── .gitignore │ ├── README.md │ ├── main.go │ ├── rand │ │ ├── rand.go │ │ └── rand_test.go │ └── server │ │ ├── .gitignore │ │ └── main.go ├── 02-navigating-your-program │ ├── README.md │ ├── condition │ │ └── main.go │ └── main.go ├── 03-demystifying-debuggers │ ├── README.md │ ├── ptrace1.gif │ ├── ptrace1.mp4 │ ├── ptrace2.gif │ ├── ptrace2.mp4 │ ├── ptrace3.gif │ ├── ptrace3.mp4 │ ├── ptrace4.gif │ └── ptrace4.mp4 ├── 04-remote-debugging │ ├── README.md │ └── main.go ├── 05-debugging-inside-a-container │ ├── .gitignore │ ├── Dockerfile │ ├── Dockerfile.scratch │ ├── README.md │ └── main.go ├── 06-debugging-from-core-dumps │ ├── .gitignore │ ├── README.md │ └── main.go ├── 07-automating-delve │ ├── README.md │ ├── main.go │ ├── script.dlv │ └── script.star ├── 08-deterministic-debugging │ └── README.md ├── 09-pprof │ ├── 01-cpu-profile │ │ ├── .gitignore │ │ └── main.go │ ├── 02-basic-http │ │ └── main.go │ ├── 03-compression │ │ └── main.go │ └── README.md └── 10-bpftrace │ ├── .gitignore │ ├── README.md │ └── main.go ├── go.mod ├── go.sum ├── jason-keene.jpg ├── vagrant-provision.sh └── warren-fernandes.jpg /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/README.md -------------------------------------------------------------------------------- /Vagrantfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/Vagrantfile -------------------------------------------------------------------------------- /debugme/deadlock/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/deadlock/README.md -------------------------------------------------------------------------------- /debugme/deadlock/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/deadlock/main.go -------------------------------------------------------------------------------- /debugme/deadlock/solution/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/deadlock/solution/main.go -------------------------------------------------------------------------------- /debugme/goroutine-leak-1/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/goroutine-leak-1/README.md -------------------------------------------------------------------------------- /debugme/goroutine-leak-1/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/goroutine-leak-1/main.go -------------------------------------------------------------------------------- /debugme/goroutine-leak-1/solution/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/goroutine-leak-1/solution/main.go -------------------------------------------------------------------------------- /debugme/goroutine-leak-2/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/goroutine-leak-2/README.md -------------------------------------------------------------------------------- /debugme/goroutine-leak-2/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/goroutine-leak-2/main.go -------------------------------------------------------------------------------- /debugme/memory-leak/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/memory-leak/README.md -------------------------------------------------------------------------------- /debugme/memory-leak/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/memory-leak/main.go -------------------------------------------------------------------------------- /debugme/memory-leak/solution/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/memory-leak/solution/main.go -------------------------------------------------------------------------------- /debugme/resolve-hostname/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/resolve-hostname/README.md -------------------------------------------------------------------------------- /debugme/resolve-hostname/binary: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/resolve-hostname/binary -------------------------------------------------------------------------------- /debugme/resolve-hostname/core.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/resolve-hostname/core.gz -------------------------------------------------------------------------------- /debugme/resolve-hostname/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/resolve-hostname/main.go -------------------------------------------------------------------------------- /debugme/resolve-hostname/solution/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/resolve-hostname/solution/main.go -------------------------------------------------------------------------------- /debugme/ring-buffer/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/ring-buffer/README.md -------------------------------------------------------------------------------- /debugme/ring-buffer/controller/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/ring-buffer/controller/main.go -------------------------------------------------------------------------------- /debugme/ring-buffer/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/ring-buffer/main.go -------------------------------------------------------------------------------- /debugme/ring-buffer/solution/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/ring-buffer/solution/main.go -------------------------------------------------------------------------------- /debugme/sqrt/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/sqrt/README.md -------------------------------------------------------------------------------- /debugme/sqrt/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/debugme/sqrt/main.go -------------------------------------------------------------------------------- /derek-parker.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/derek-parker.jpg -------------------------------------------------------------------------------- /exercises/00-introduction/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/00-introduction/README.md -------------------------------------------------------------------------------- /exercises/00-introduction/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/00-introduction/main.go -------------------------------------------------------------------------------- /exercises/01-starting-a-debugging-session/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/01-starting-a-debugging-session/.gitignore -------------------------------------------------------------------------------- /exercises/01-starting-a-debugging-session/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/01-starting-a-debugging-session/README.md -------------------------------------------------------------------------------- /exercises/01-starting-a-debugging-session/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/01-starting-a-debugging-session/main.go -------------------------------------------------------------------------------- /exercises/01-starting-a-debugging-session/rand/rand.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/01-starting-a-debugging-session/rand/rand.go -------------------------------------------------------------------------------- /exercises/01-starting-a-debugging-session/rand/rand_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/01-starting-a-debugging-session/rand/rand_test.go -------------------------------------------------------------------------------- /exercises/01-starting-a-debugging-session/server/.gitignore: -------------------------------------------------------------------------------- 1 | server 2 | -------------------------------------------------------------------------------- /exercises/01-starting-a-debugging-session/server/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/01-starting-a-debugging-session/server/main.go -------------------------------------------------------------------------------- /exercises/02-navigating-your-program/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/02-navigating-your-program/README.md -------------------------------------------------------------------------------- /exercises/02-navigating-your-program/condition/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/02-navigating-your-program/condition/main.go -------------------------------------------------------------------------------- /exercises/02-navigating-your-program/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/02-navigating-your-program/main.go -------------------------------------------------------------------------------- /exercises/03-demystifying-debuggers/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/03-demystifying-debuggers/README.md -------------------------------------------------------------------------------- /exercises/03-demystifying-debuggers/ptrace1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/03-demystifying-debuggers/ptrace1.gif -------------------------------------------------------------------------------- /exercises/03-demystifying-debuggers/ptrace1.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/03-demystifying-debuggers/ptrace1.mp4 -------------------------------------------------------------------------------- /exercises/03-demystifying-debuggers/ptrace2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/03-demystifying-debuggers/ptrace2.gif -------------------------------------------------------------------------------- /exercises/03-demystifying-debuggers/ptrace2.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/03-demystifying-debuggers/ptrace2.mp4 -------------------------------------------------------------------------------- /exercises/03-demystifying-debuggers/ptrace3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/03-demystifying-debuggers/ptrace3.gif -------------------------------------------------------------------------------- /exercises/03-demystifying-debuggers/ptrace3.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/03-demystifying-debuggers/ptrace3.mp4 -------------------------------------------------------------------------------- /exercises/03-demystifying-debuggers/ptrace4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/03-demystifying-debuggers/ptrace4.gif -------------------------------------------------------------------------------- /exercises/03-demystifying-debuggers/ptrace4.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/03-demystifying-debuggers/ptrace4.mp4 -------------------------------------------------------------------------------- /exercises/04-remote-debugging/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/04-remote-debugging/README.md -------------------------------------------------------------------------------- /exercises/04-remote-debugging/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/04-remote-debugging/main.go -------------------------------------------------------------------------------- /exercises/05-debugging-inside-a-container/.gitignore: -------------------------------------------------------------------------------- 1 | dlv 2 | -------------------------------------------------------------------------------- /exercises/05-debugging-inside-a-container/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/05-debugging-inside-a-container/Dockerfile -------------------------------------------------------------------------------- /exercises/05-debugging-inside-a-container/Dockerfile.scratch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/05-debugging-inside-a-container/Dockerfile.scratch -------------------------------------------------------------------------------- /exercises/05-debugging-inside-a-container/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/05-debugging-inside-a-container/README.md -------------------------------------------------------------------------------- /exercises/05-debugging-inside-a-container/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/05-debugging-inside-a-container/main.go -------------------------------------------------------------------------------- /exercises/06-debugging-from-core-dumps/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/06-debugging-from-core-dumps/.gitignore -------------------------------------------------------------------------------- /exercises/06-debugging-from-core-dumps/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/06-debugging-from-core-dumps/README.md -------------------------------------------------------------------------------- /exercises/06-debugging-from-core-dumps/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/06-debugging-from-core-dumps/main.go -------------------------------------------------------------------------------- /exercises/07-automating-delve/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/07-automating-delve/README.md -------------------------------------------------------------------------------- /exercises/07-automating-delve/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/07-automating-delve/main.go -------------------------------------------------------------------------------- /exercises/07-automating-delve/script.dlv: -------------------------------------------------------------------------------- 1 | b main.handler 2 | c 3 | p req.URL.Path 4 | clearall 5 | c 6 | -------------------------------------------------------------------------------- /exercises/07-automating-delve/script.star: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/07-automating-delve/script.star -------------------------------------------------------------------------------- /exercises/08-deterministic-debugging/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/08-deterministic-debugging/README.md -------------------------------------------------------------------------------- /exercises/09-pprof/01-cpu-profile/.gitignore: -------------------------------------------------------------------------------- 1 | cpu.prof.pb.gz 2 | -------------------------------------------------------------------------------- /exercises/09-pprof/01-cpu-profile/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/09-pprof/01-cpu-profile/main.go -------------------------------------------------------------------------------- /exercises/09-pprof/02-basic-http/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/09-pprof/02-basic-http/main.go -------------------------------------------------------------------------------- /exercises/09-pprof/03-compression/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/09-pprof/03-compression/main.go -------------------------------------------------------------------------------- /exercises/09-pprof/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/09-pprof/README.md -------------------------------------------------------------------------------- /exercises/10-bpftrace/.gitignore: -------------------------------------------------------------------------------- 1 | 10-bpftrace 2 | -------------------------------------------------------------------------------- /exercises/10-bpftrace/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/10-bpftrace/README.md -------------------------------------------------------------------------------- /exercises/10-bpftrace/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/exercises/10-bpftrace/main.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/go.sum -------------------------------------------------------------------------------- /jason-keene.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/jason-keene.jpg -------------------------------------------------------------------------------- /vagrant-provision.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/vagrant-provision.sh -------------------------------------------------------------------------------- /warren-fernandes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jasonkeene/debugging-workshop/HEAD/warren-fernandes.jpg --------------------------------------------------------------------------------