Commit 4a2376ef authored by David Chase's avatar David Chase

cmd/compile: skip ssa/debug_test.go when gdb missing etc.

CL50610 broke the build for noopt (different inlining
behavior) and clang (no gdb) so it needs to catch those
cases and skip.

The run/no-run logic was slightly cleaned up,
the name of gdb on OSX was made more robust (tries gdb
first, then ggdb), and the file names were canonicalized
before loggging instead of in comparison to reduce
gratuitous noise in diffs when things aren't otherwise
equal.

This probably doesn't fix problems on Alpine, but it should
provide a cleaner and less confusing failure.

Change-Id: I26c65bff5a8d3d60f1cd6ae02a282558c53dda67
Reviewed-on: https://go-review.googlesource.com/69371
Run-TryBot: David Chase <drchase@google.com>
Reviewed-by: default avatarKeith Randall <khr@golang.org>
parent 6f5ede8b
......@@ -32,6 +32,8 @@ var hexRe = regexp.MustCompile("0x[a-zA-Z0-9]+")
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).
......@@ -56,28 +58,54 @@ var stringRe = regexp.MustCompile("\"([^\\\"]|(\\.))*\"")
// 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"
......@@ -300,10 +328,6 @@ func (h *nextHist) addVar(text string) {
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
......@@ -333,6 +357,14 @@ func (h *nextHist) equals(k *nextHist) bool {
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 {
......@@ -371,14 +403,15 @@ func (s *delveState) stepnext(ss string) bool {
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
......@@ -427,11 +460,8 @@ type gdbState struct {
}
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]+)(.*)")
......@@ -479,14 +509,15 @@ func (s *gdbState) stepnext(ss string) bool {
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
......@@ -106,278 +106,8 @@
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() {
......@@ -131,278 +131,8 @@ $24 = 26
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)
......@@ -23,7 +23,7 @@
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)
......@@ -32,7 +32,7 @@
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)
......@@ -41,7 +41,7 @@
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)
......@@ -50,7 +50,7 @@
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,7 +59,7 @@
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)
......@@ -68,7 +68,7 @@
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)
......@@ -77,7 +77,7 @@
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)
......@@ -86,7 +86,7 @@
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)
......@@ -95,7 +95,7 @@
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)
......@@ -151,98 +151,8 @@
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} }
......@@ -117,98 +117,8 @@
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 {
......
......@@ -33,7 +33,7 @@ var cannedInput string = `1
`
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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment