aboutsummaryrefslogtreecommitdiff
path: root/tools/src/crashhandler/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'tools/src/crashhandler/main.go')
-rw-r--r--tools/src/crashhandler/main.go81
1 files changed, 0 insertions, 81 deletions
diff --git a/tools/src/crashhandler/main.go b/tools/src/crashhandler/main.go
deleted file mode 100644
index 7b1717f..0000000
--- a/tools/src/crashhandler/main.go
+++ /dev/null
@@ -1,81 +0,0 @@
-package main
-
-import (
- "flag"
- "fmt"
- "io/ioutil"
- "os"
- "strings"
-)
-
-type CrashDump struct {
- Name string
- DumpPath string
- MetadataPath string
-}
-
-func expandHomeDir(path string) (string, error) {
- home, err := os.UserHomeDir()
- if err != nil {
- return path, err
- }
-
- return strings.Replace(path, "~/", home, -1), nil
-}
-
-func dumps(path string) ([]CrashDump, error) {
- files, err := ioutil.ReadDir(path)
- if err != nil {
- return nil, err
- }
-
- var crashes []CrashDump
-
- for i, file := range files {
- if strings.HasSuffix(file.Name(), ".dmp") {
- if i+1 < len(files) && files[i+1].Name() == file.Name()+".txt" {
- crashes = append(crashes, CrashDump{Name: strings.TrimSuffix(file.Name(), ".dmp"),
- DumpPath: file.Name(), MetadataPath: files[i+1].Name()})
- } else {
- crashes = append(crashes, CrashDump{Name: strings.TrimSuffix(file.Name(), ".dmp"), DumpPath: file.Name()})
- }
- }
- }
-
- return crashes, nil
-}
-
-func main() {
- helpFlag := flag.Bool("help", false, "Show help information.")
- flag.StringVar(&dumpPath, "crashd", dumpPath, "Crash dump path")
-
- // create crash report flags
- crashedFlag := flag.String("c", "", "Create crash report at specified location and write any specified data into it")
-
- flag.Parse()
- dumpPath, _ = expandHomeDir(dumpPath)
-
- if *helpFlag {
- flag.PrintDefaults()
- return
- }
-
- if *crashedFlag != "" {
- fmt.Println("Creating crash dump report", *crashedFlag)
- contents := []byte("Additional information: " + strings.Join(flag.Args(), ""))
- ioutil.WriteFile(*crashedFlag+".txt", contents, 0644)
- return
- }
-
- fmt.Printf(" [%s]\n", dumpPath)
- c, err := dumps(dumpPath)
- if err != nil {
- panic(err)
- }
- for _, d := range c {
- fmt.Printf("\t- %s\n", d.Name)
- }
- fmt.Println(" To analyze a crashdump, use the minidump_stackwalk tool:")
- fmt.Println("minidump_stackwalk <minidump-file> [symbol-path]")
-
-}