delve/service/debugger/debugger_windows.go

38 lines
646 B
Go
Raw Normal View History

2016-01-15 05:26:54 +00:00
package debugger
import (
"debug/pe"
2016-01-15 05:26:54 +00:00
"fmt"
"os"
"os/exec"
"path/filepath"
"github.com/go-delve/delve/service/api"
2016-01-15 05:26:54 +00:00
)
func attachErrorMessage(pid int, err error) error {
return fmt.Errorf("could not attach to pid %d: %s", pid, err)
}
func verifyBinaryFormat(exePath string) error {
f, err := os.Open(exePath)
if err != nil {
return err
}
defer f.Close()
// Make sure the binary exists and is an executable file
if filepath.Base(exePath) == exePath {
if _, err := exec.LookPath(exePath); err != nil {
return err
}
}
exe, err := pe.NewFile(f)
if err != nil {
return api.ErrNotExecutable
}
exe.Close()
return nil
}