1
0
mirror of https://github.com/golang/go synced 2024-11-12 03:50:21 -07:00

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: Keith Randall <khr@golang.org>
This commit is contained in:
David Chase 2017-10-09 16:41:25 -04:00
parent 6f5ede8bd5
commit 4a2376ef02
6 changed files with 81 additions and 770 deletions

View File

@ -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,10 +58,46 @@ 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)
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("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")
testNexting(t, "hist", "opt", "")
// 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) {
@ -68,16 +106,6 @@ func testNexting(t *testing.T, base, tag, gcflags string) {
// (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.
// 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()
}
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)
}

View File

@ -1,6 +1,6 @@
./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)

View File

@ -1,10 +1,10 @@
/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 {

View File

@ -1,20 +1,20 @@
./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)

View File

@ -1,7 +1,7 @@
/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 {

View File

@ -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