aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2015-07-14 15:43:33 -0400
committerRuss Cox <rsc@golang.org>2015-07-15 04:30:50 +0000
commit505f6e335e788c87881d4aa53cfa06a8c645009a (patch)
tree29f85edc916ba6d9ba7b5230c91e6fe580e9c6eb
parent2bd1e5e50b677790a2f48127bf443b32ca8193db (diff)
downloadgo-505f6e335e788c87881d4aa53cfa06a8c645009a.tar.gz
go-505f6e335e788c87881d4aa53cfa06a8c645009a.zip
cmd/pprof: store temporary files in temporary directory
Fixes #9180. Change-Id: Id5adaea0ca9005946fb89c88a10c6f59d8c0943c Reviewed-on: https://go-review.googlesource.com/12202 Reviewed-by: Andrew Gerrand <adg@golang.org>
-rw-r--r--src/cmd/pprof/internal/commands/commands.go20
-rw-r--r--src/cmd/pprof/internal/driver/driver.go2
2 files changed, 20 insertions, 2 deletions
diff --git a/src/cmd/pprof/internal/commands/commands.go b/src/cmd/pprof/internal/commands/commands.go
index 175c7cc99c..9570cd0440 100644
--- a/src/cmd/pprof/internal/commands/commands.go
+++ b/src/cmd/pprof/internal/commands/commands.go
@@ -9,6 +9,7 @@ import (
"bytes"
"fmt"
"io"
+ "io/ioutil"
"os"
"os/exec"
"runtime"
@@ -185,9 +186,26 @@ func saveSVGToFile() PostProcessor {
}
}
+var vizTmpDir string
+
+func makeVizTmpDir() error {
+ if vizTmpDir != "" {
+ return nil
+ }
+ name, err := ioutil.TempDir("", "pprof-")
+ if err != nil {
+ return err
+ }
+ vizTmpDir = name
+ return nil
+}
+
func invokeVisualizer(interactive **bool, format PostProcessor, suffix string, visualizers []string) PostProcessor {
return func(input *bytes.Buffer, output io.Writer, ui plugin.UI) error {
- tempFile, err := tempfile.New(os.Getenv("PPROF_TMPDIR"), "pprof", "."+suffix)
+ if err := makeVizTmpDir(); err != nil {
+ return err
+ }
+ tempFile, err := tempfile.New(vizTmpDir, "pprof", "."+suffix)
if err != nil {
return err
}
diff --git a/src/cmd/pprof/internal/driver/driver.go b/src/cmd/pprof/internal/driver/driver.go
index 7f345a3bc2..df6a2d18b2 100644
--- a/src/cmd/pprof/internal/driver/driver.go
+++ b/src/cmd/pprof/internal/driver/driver.go
@@ -894,7 +894,7 @@ var usageMsg = "Output file parameters (for file-based output formats):\n" +
" -help This message"
var usageMsgVars = "Environment Variables:\n" +
- " PPROF_TMPDIR Location for temporary files (default $HOME/pprof)\n" +
+ " PPROF_TMPDIR Location for saved profiles (default $HOME/pprof)\n" +
" PPROF_TOOLS Search path for object-level tools\n" +
" PPROF_BINARY_PATH Search path for local binary files\n" +
" default: $HOME/pprof/binaries\n" +