From b3d3debd4c4fdffd6892e2d177ee308965730e9c Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Mon, 24 Feb 2020 15:05:48 +0100 Subject: [PATCH] main: check for error after starting the OCD daemon This replaces a panic with an informative error message if the right tool (such as OpenOCD) is not installed. --- main.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 2ff20194..07ea71ec 100644 --- a/main.go +++ b/main.go @@ -335,7 +335,10 @@ func FlashGDB(pkgName string, ocdOutput bool, options *compileopts.Options) erro // GDB (to break the currently executing program). setCommandAsDaemon(daemon) // Start now, and kill it on exit. - daemon.Start() + err = daemon.Start() + if err != nil { + return &commandError{"failed to run", daemon.Path, err} + } defer func() { daemon.Process.Signal(os.Interrupt) // Maybe we should send a .Kill() after x seconds? @@ -360,7 +363,10 @@ func FlashGDB(pkgName string, ocdOutput bool, options *compileopts.Options) erro // GDB (to break the currently executing program). setCommandAsDaemon(daemon) // Start now, and kill it on exit. - daemon.Start() + err = daemon.Start() + if err != nil { + return &commandError{"failed to run", daemon.Path, err} + } defer func() { daemon.Process.Signal(os.Interrupt) // Maybe we should send a .Kill() after x seconds? @@ -380,7 +386,10 @@ func FlashGDB(pkgName string, ocdOutput bool, options *compileopts.Options) erro setCommandAsDaemon(daemon) // Start now, and kill it on exit. - daemon.Start() + err = daemon.Start() + if err != nil { + return &commandError{"failed to run", daemon.Path, err} + } defer func() { daemon.Process.Signal(os.Interrupt) // Maybe we should send a .Kill() after x seconds?