Gophercon 2020 Debugging Workshop

To get back to here: bit.ly/debugging-workshop
Slack Channel: #gophercon-2020-debugging-workshop

Course Objective

Solving bugs can be incredibly challenging. It can often feel like our programs have the upper hand. My goal for this course is to instill in you the confidence that you can understand and squash your bugs, no matter how challenging they are.

The next time you encounter a difficult bug, I'd like for you to be able to say:

I don't know what is wrong with my program but I know how to find out!

In this course, we will be covering a number of tools that I have found useful in understanding Go programs.

Before Starting

You will need to clone this repo:

git clone https://github.com/jasonkeene/debugging-workshop

There are a few things you should have setup on your machine before starting on the exercises. You will need to:

A Linux machine will be needed for the more advanced exercises as they utilize capabilities specific to Linux. If you do not have a Linux machine handy, no worries. This repo contains a Vagrantfile that will provision a Linux VM for you. It is recommended to do this in advance of the workshop as it can take some time to download the machine image and provision the VM. You will need to:

If you are not using the Vagrant VM you will need to:

You can see how these were installed in the VM by looking at the vagrant-provision.sh file.

Exercises

This workshop is broken down into a series of exercises. We will go through these individually during the class:

Please ask questions as we work through these exercises! If I went too fast over something that needs additional explanation please stop me. Some of the later sections build on earlier sections so it is important that we all understand the material before moving forward. You can also ask questions during the breaks if you prefer.

Instructors

Jason Keene

Instructor - Delve User

Contact: Slack


Derek Parker

Instructor - Creator of Delve

Contact: Slack


Warren Fernandes

TA

Contact: Slack


Feedback

If you have any feedback about this workshop, the presenters, the content, the remote format, etc please let us know by filling out this form!