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:
parent
6f5ede8bd5
commit
4a2376ef02
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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 {
|
||||
|
@ -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)
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user