diff --git a/cmd.go b/cmd.go index da36db3..b7a8c69 100644 --- a/cmd.go +++ b/cmd.go @@ -65,11 +65,18 @@ func trace(addr net.TCPAddr) error { if err != nil { return err } - defer os.Remove(tmpfile.Name()) + if err := ioutil.WriteFile(tmpfile.Name(), out, 0); err != nil { return err } fmt.Printf("Trace dump saved to: %s\n", tmpfile.Name()) + + // Keep tracefile if go binary is not found. + if _, err := exec.LookPath("go"); err != nil { + return nil + } + defer os.Remove(tmpfile.Name()) + cmd := exec.Command("go", "tool", "trace", tmpfile.Name()) cmd.Env = os.Environ() cmd.Stdin = os.Stdin