var numRe = regexp.MustCompile("-?[0-9]+")
var stringRe = regexp.MustCompile("\"([^\\\"]|(\\.))*\"")
+var gdb = "gdb" // Might be "ggdb" on Darwin, because gdb no longer part of XCode
+
// TestNexting go-builds a file, then uses a debugger (default gdb, optionally delve)
// to next through the generated executable, recording each line landed at, and
// then compares those lines with reference file(s).
// go test debug_test.go -args -u
// (for Delve)
// go test debug_test.go -args -u -d
+
func TestNexting(t *testing.T) {
testenv.MustHaveGoBuild(t)
- testNexting(t, "hist", "dbg", "-N -l")
- testNexting(t, "hist", "opt", "")
-}
-
-func testNexting(t *testing.T, base, tag, gcflags string) {
- // (1) In testdata, build sample.go into sample
- // (2) Run debugger gathering a history
- // (3) Read expected history from testdata/sample.nexts
- // optionally, write out testdata/sample.nexts
if !*delve && !*force && !(runtime.GOOS == "linux" && runtime.GOARCH == "amd64") {
// Running gdb on OSX/darwin is very flaky.
+ // Sometimes it is called ggdb, depending on how it is installed.
// It also probably requires an admin password typed into a dialog box.
// Various architectures tend to differ slightly sometimes, and keeping them
// all in sync is a pain for people who don't have them all at hand,
// so limit testing to amd64 (for now)
- t.Skip()
+ t.Skip("Skipped unless -d (delve), -f (force), or linux-amd64")
}
+ if *delve {
+ _, err := exec.LookPath("dlv")
+ if err != nil {
+ t.Fatal("dlv specified on command line with -d but no dlv on path")
+ }
+ } else {
+ _, err := exec.LookPath(gdb)
+ if err != nil {
+ if runtime.GOOS != "darwin" {
+ t.Skip("Skipped because gdb not available")
+ }
+ _, err = exec.LookPath("ggdb")
+ if err != nil {
+ t.Skip("Skipped because gdb (and also ggdb) not available")
+ }
+ gdb = "ggdb"
+ }
+ }
+
+ testNexting(t, "hist", "dbg", "-N -l")
+ // If this is test is run with a runtime compiled with -N -l, it is very likely to fail.
+ // This occurs in the noopt builders (for example).
+ if gogcflags := os.Getenv("GO_GCFLAGS"); *force || !strings.Contains(gogcflags, "-N") && !strings.Contains(gogcflags, "-l") {
+ testNexting(t, "hist", "opt", "")
+ }
+}
+
+func testNexting(t *testing.T, base, tag, gcflags string) {
+ // (1) In testdata, build sample.go into sample
+ // (2) Run debugger gathering a history
+ // (3) Read expected history from testdata/sample.nexts
+ // optionally, write out testdata/sample.nexts
+
exe := filepath.Join("testdata", base)
logbase := exe + "-" + tag
tmpbase := logbase + "-test"
func invertMapSU8(hf2i map[string]uint8) map[uint8]string {
hi2f := make(map[uint8]string)
for hs, i := range hf2i {
- hsi := strings.Index(hs, "/src/")
- if hsi != -1 {
- hs = hs[hsi+1:]
- }
hi2f[i] = hs
}
return hi2f
return true
}
+func canonFileName(f string) string {
+ i := strings.Index(f, "/src/")
+ if i != -1 {
+ f = f[i+1:]
+ }
+ return f
+}
+
/* Delve */
type delveState struct {
excerpt = excerpts[1]
}
if len(locations) > 0 {
+ fn := canonFileName(locations[2])
if *verbose {
- if s.file != locations[2] {
- fmt.Printf("%s\n", locations[2])
+ if s.file != fn {
+ fmt.Printf("%s\n", locations[2]) // don't canonocalize verbose logging
}
fmt.Printf(" %s\n", locations[3])
}
s.line = locations[3]
- s.file = locations[2]
+ s.file = fn
s.function = locations[1]
s.ioState.history.add(s.file, s.line, excerpt)
return true
}
func newGdb(tag, executable string, args ...string) dbgr {
- gdb := "gdb"
- if runtime.GOOS == "darwin" {
- gdb = "ggdb" // A possibility on a Mac
- }
- cmd := exec.Command(gdb, executable)
+ // Turn off shell, necessary for Darwin apparently
+ cmd := exec.Command(gdb, "-ex", "set startup-with-shell off", executable)
cmd.Env = replaceEnv(cmd.Env, "TERM", "dumb")
s := &gdbState{tag: tag, cmd: cmd, args: args}
s.atLineRe = regexp.MustCompile("(^|\n)([0-9]+)(.*)")
excerpt = excerpts[3]
}
if len(locations) > 0 {
+ fn := canonFileName(locations[2])
if *verbose {
- if s.file != locations[2] {
+ if s.file != fn {
fmt.Printf("%s\n", locations[2])
}
fmt.Printf(" %s\n", locations[3])
}
s.line = locations[3]
- s.file = locations[2]
+ s.file = fn
s.function = locations[1]
s.ioState.history.add(s.file, s.line, excerpt)
}
./testdata/hist.go
35: func main() {
-36: hist := make([]int, 100)
+36: hist := make([]int, 10)
37: var reader io.Reader = strings.NewReader(cannedInput) //gdb-dbg=(hist/A,cannedInput/A)
38: if len(os.Args) > 1 {
43: return
60: if a == 0 {
61: continue
59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
68: }
- /usr/local/google/home/drchase/work/go/src/runtime/proc.go
+ src/runtime/proc.go
201: if atomic.Load(&runningPanicDefers) != 0 {
210: if atomic.Load(&panicking) != 0 {
214: exit(0)
- /usr/local/google/home/drchase/work/go/src/cmd/compile/internal/ssa/testdata/hist.go
+ src/cmd/compile/internal/ssa/testdata/hist.go
35: func main() {
35: func main() {
-36: hist := make([]int, 100)
+36: hist := make([]int, 10)
37: var reader io.Reader = strings.NewReader(cannedInput) //gdb-dbg=(hist/A,cannedInput/A)
-$1 = {array = <A>, len = 100, cap = 100}
-$2 = <A> "1\n1\n1\n1\n2\n2\n2\n4\n4\n8\n"
+$1 = []int = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
+$2 = "1\n1\n1\n1\n2\n2\n2\n4\n4\n8\n"
38: if len(os.Args) > 1 {
43: return
47: for scanner.Scan() {
60: if a == 0 {
61: continue
59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
-60: if a == 0 {
-61: continue
-59: for i, a := range hist {
68: }
- /usr/local/google/home/drchase/work/go/src/runtime/proc.go
+ src/runtime/proc.go
201: if atomic.Load(&runningPanicDefers) != 0 {
201: if atomic.Load(&runningPanicDefers) != 0 {
210: if atomic.Load(&panicking) != 0 {
./testdata/hist.go
35: func main() {
-36: hist := make([]int, 100)
+36: hist := make([]int, 10)
37: var reader io.Reader = strings.NewReader(cannedInput) //gdb-dbg=(hist/A,cannedInput/A)
13: "strings"
- /usr/local/google/home/drchase/work/go/src/strings/reader.go
+ src/strings/reader.go
150: func NewReader(s string) *Reader { return &Reader{s, 0, -1} }
./testdata/hist.go
38: if len(os.Args) > 1 {
8: "bufio"
- /usr/local/google/home/drchase/work/go/src/bufio/scan.go
+ src/bufio/scan.go
84: split: ScanLines,
74: MaxScanTokenSize = 64 * 1024
./testdata/hist.go
47: for scanner.Scan() {
47: for scanner.Scan() {
- /usr/local/google/home/drchase/work/go/src/bufio/scan.go
+ src/bufio/scan.go
107: return string(s.token)
./testdata/hist.go
49: i, err := strconv.ParseInt(s, 10, 64)
55: hist[int(i)]++
55: hist[int(i)]++
47: for scanner.Scan() {
- /usr/local/google/home/drchase/work/go/src/bufio/scan.go
+ src/bufio/scan.go
107: return string(s.token)
./testdata/hist.go
49: i, err := strconv.ParseInt(s, 10, 64)
55: hist[int(i)]++
55: hist[int(i)]++
47: for scanner.Scan() {
- /usr/local/google/home/drchase/work/go/src/bufio/scan.go
+ src/bufio/scan.go
107: return string(s.token)
./testdata/hist.go
49: i, err := strconv.ParseInt(s, 10, 64)
55: hist[int(i)]++
55: hist[int(i)]++
47: for scanner.Scan() {
- /usr/local/google/home/drchase/work/go/src/bufio/scan.go
+ src/bufio/scan.go
107: return string(s.token)
./testdata/hist.go
49: i, err := strconv.ParseInt(s, 10, 64)
55: hist[int(i)]++
55: hist[int(i)]++
47: for scanner.Scan() {
- /usr/local/google/home/drchase/work/go/src/bufio/scan.go
+ src/bufio/scan.go
107: return string(s.token)
./testdata/hist.go
49: i, err := strconv.ParseInt(s, 10, 64)
55: hist[int(i)]++
55: hist[int(i)]++
47: for scanner.Scan() {
- /usr/local/google/home/drchase/work/go/src/bufio/scan.go
+ src/bufio/scan.go
107: return string(s.token)
./testdata/hist.go
49: i, err := strconv.ParseInt(s, 10, 64)
55: hist[int(i)]++
55: hist[int(i)]++
47: for scanner.Scan() {
- /usr/local/google/home/drchase/work/go/src/bufio/scan.go
+ src/bufio/scan.go
107: return string(s.token)
./testdata/hist.go
49: i, err := strconv.ParseInt(s, 10, 64)
55: hist[int(i)]++
55: hist[int(i)]++
47: for scanner.Scan() {
- /usr/local/google/home/drchase/work/go/src/bufio/scan.go
+ src/bufio/scan.go
107: return string(s.token)
./testdata/hist.go
49: i, err := strconv.ParseInt(s, 10, 64)
55: hist[int(i)]++
55: hist[int(i)]++
47: for scanner.Scan() {
- /usr/local/google/home/drchase/work/go/src/bufio/scan.go
+ src/bufio/scan.go
107: return string(s.token)
./testdata/hist.go
49: i, err := strconv.ParseInt(s, 10, 64)
55: hist[int(i)]++
55: hist[int(i)]++
47: for scanner.Scan() {
- /usr/local/google/home/drchase/work/go/src/bufio/scan.go
+ src/bufio/scan.go
107: return string(s.token)
./testdata/hist.go
49: i, err := strconv.ParseInt(s, 10, 64)
59: for i, a := range hist {
65: fmt.Fprintf(os.Stderr, "%d\t%d\t%d\t%d\t%d\n", i, a, n, i*a, t) //gdb-dbg=(n,i,t)
60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
68: }
- /usr/local/google/home/drchase/work/go/src/runtime/proc.go
+ src/runtime/proc.go
201: if atomic.Load(&runningPanicDefers) != 0 {
210: if atomic.Load(&panicking) != 0 {
214: exit(0)
- /usr/local/google/home/drchase/work/go/src/cmd/compile/internal/ssa/testdata/hist.go
+ src/cmd/compile/internal/ssa/testdata/hist.go
35: func main() {
35: func main() {
-36: hist := make([]int, 100)
+36: hist := make([]int, 10)
37: var reader io.Reader = strings.NewReader(cannedInput) //gdb-dbg=(hist/A,cannedInput/A)
13: "strings"
150: func NewReader(s string) *Reader { return &Reader{s, 0, -1} }
59: for i, a := range hist {
65: fmt.Fprintf(os.Stderr, "%d\t%d\t%d\t%d\t%d\n", i, a, n, i*a, t) //gdb-dbg=(n,i,t)
60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
-60: if a == 0 {
68: }
- /usr/local/google/home/drchase/work/go/src/runtime/proc.go
+ src/runtime/proc.go
201: if atomic.Load(&runningPanicDefers) != 0 {
201: if atomic.Load(&runningPanicDefers) != 0 {
210: if atomic.Load(&panicking) != 0 {
`
func main() {
- hist := make([]int, 100)
+ hist := make([]int, 10)
var reader io.Reader = strings.NewReader(cannedInput) //gdb-dbg=(hist/A,cannedInput/A)
if len(os.Args) > 1 {
var err error