package main import ( "errors" "fmt" "os" ) var myErr error = errors.New("simulated failure") /* * usage: rrm */ func main() { dir := os.Args[1] /* * setting a dlv breakpoint at line 25 * then assigning "set e = myErr" at line 25 * does not result in the condition evaluating to true. * This is because even when compiled explicitly with -gcflags="all=-N -l" * the compiler generates assembly which optimizes the variable read. */ e := os.RemoveAll(dir) if e != nil { fmt.Println("os.RemoveAll failed") } else { fmt.Println("os.RemoveAll succeeded") } }