Cleanup debug binary on exit
This commit is contained in:
parent
62f721ac54
commit
0bdbe18b2b
@ -60,6 +60,12 @@ func main() {
|
|||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
status := run(addr, logEnabled, headless)
|
||||||
|
fmt.Println("[Hope I was of service hunting your bug!]")
|
||||||
|
os.Exit(status)
|
||||||
|
}
|
||||||
|
|
||||||
|
func run(addr string, logEnabled, headless bool) int {
|
||||||
// Collect launch arguments
|
// Collect launch arguments
|
||||||
var processArgs []string
|
var processArgs []string
|
||||||
var attachPid int
|
var attachPid int
|
||||||
@ -69,24 +75,29 @@ func main() {
|
|||||||
cmd := exec.Command("go", "build", "-o", debugname, "-gcflags", "-N -l")
|
cmd := exec.Command("go", "build", "-o", debugname, "-gcflags", "-N -l")
|
||||||
err := cmd.Run()
|
err := cmd.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Errorf("Could not compile program: %s\n", err)
|
fmt.Println("Could not compile program:", err)
|
||||||
os.Exit(1)
|
return 1
|
||||||
}
|
}
|
||||||
defer os.Remove(debugname)
|
fp, err := filepath.Abs("./" + debugname)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
defer os.Remove(fp)
|
||||||
|
|
||||||
processArgs = append([]string{"./" + debugname}, flag.Args()[1:]...)
|
processArgs = append([]string{"./" + debugname}, flag.Args()[1:]...)
|
||||||
case "test":
|
case "test":
|
||||||
wd, err := os.Getwd()
|
wd, err := os.Getwd()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
os.Exit(1)
|
return 1
|
||||||
}
|
}
|
||||||
base := filepath.Base(wd)
|
base := filepath.Base(wd)
|
||||||
cmd := exec.Command("go", "test", "-c", "-gcflags", "-N -l")
|
cmd := exec.Command("go", "test", "-c", "-gcflags", "-N -l")
|
||||||
err = cmd.Run()
|
err = cmd.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Errorf("Could not compile program: %s\n", err)
|
fmt.Errorf("Could not compile program: %s\n", err)
|
||||||
os.Exit(1)
|
return 1
|
||||||
}
|
}
|
||||||
debugname := "./" + base + ".test"
|
debugname := "./" + base + ".test"
|
||||||
defer os.Remove(debugname)
|
defer os.Remove(debugname)
|
||||||
@ -96,7 +107,7 @@ func main() {
|
|||||||
pid, err := strconv.Atoi(flag.Args()[1])
|
pid, err := strconv.Atoi(flag.Args()[1])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Errorf("Invalid pid: %d", flag.Args()[1])
|
fmt.Errorf("Invalid pid: %d", flag.Args()[1])
|
||||||
os.Exit(1)
|
return 1
|
||||||
}
|
}
|
||||||
attachPid = pid
|
attachPid = pid
|
||||||
default:
|
default:
|
||||||
@ -107,7 +118,7 @@ func main() {
|
|||||||
listener, err := net.Listen("tcp", addr)
|
listener, err := net.Listen("tcp", addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("couldn't start listener: %s\n", err)
|
fmt.Printf("couldn't start listener: %s\n", err)
|
||||||
os.Exit(1)
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create and start a REST debugger server
|
// Create and start a REST debugger server
|
||||||
@ -118,7 +129,7 @@ func main() {
|
|||||||
}, logEnabled)
|
}, logEnabled)
|
||||||
go server.Run()
|
go server.Run()
|
||||||
|
|
||||||
status := 0
|
var status int
|
||||||
if !headless {
|
if !headless {
|
||||||
// Create and start a terminal
|
// Create and start a terminal
|
||||||
client := rest.NewClient(listener.Addr().String())
|
client := rest.NewClient(listener.Addr().String())
|
||||||
@ -134,8 +145,8 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
}
|
}
|
||||||
fmt.Println("[Hope I was of service hunting your bug!]")
|
|
||||||
os.Exit(status)
|
return status
|
||||||
}
|
}
|
||||||
|
|
||||||
// help prints help text to os.Stderr.
|
// help prints help text to os.Stderr.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user