Skip to content

debug/pe: decoding dwarf section failure #11608

@alexbrainman

Description

@alexbrainman
C:\dev\go\src\debug\pe>go version
go version devel +d5994f4 Sun Jul 5 22:07:46 2015 +0000 windows/386

C:\dev\go\src\debug\pe>git diff
diff --git a/src/debug/pe/file_test.go b/src/debug/pe/file_test.go
index 0d73969..aa03459 100644
--- a/src/debug/pe/file_test.go
+++ b/src/debug/pe/file_test.go
@@ -5,7 +5,12 @@
 package pe

 import (
+   "io/ioutil"
+   "os"
+   "os/exec"
+   "path/filepath"
    "reflect"
+   "runtime"
    "testing"
 )

@@ -241,3 +246,37 @@ func TestOpenFailure(t *testing.T) {
        t.Errorf("open %s: succeeded unexpectedly", filename)
    }
 }
+
+func TestDWARF(t *testing.T) {
+   if runtime.GOOS != "windows" {
+       t.Skip("Skipping windows only test.")
+   }
+
+   tmpdir, err := ioutil.TempDir("", "TestDWARF")
+   if err != nil {
+       t.Fatal("TempDir failed: ", err)
+   }
+   defer os.RemoveAll(tmpdir)
+
+   prog := `
+package main
+func main() {
+}
+`
+   src := filepath.Join(tmpdir, "a.go")
+   exe := filepath.Join(tmpdir, "a.exe")
+   err = ioutil.WriteFile(src, []byte(prog), 0644)
+   output, err := exec.Command("go", "build", "-o", exe, src).CombinedOutput()
+   if err != nil {
+       t.Fatalf("building test executable failed: %s %s", err, string(output))
+   }
+
+   f, err := Open(exe)
+   if err != nil {
+       t.Fatal(err)
+   }
+   _, err = f.DWARF()
+   if err != nil {
+       t.Fatal(err)
+   }
+}

C:\dev\go\src\debug\pe>go test -v -run=DWARF
=== RUN   TestDWARF
--- FAIL: TestDWARF (3.80s)
        file_test.go:280: decoding dwarf section info at offset 0x1e7ff: underflow
FAIL
exit status 1
FAIL    debug/pe        3.905s

C:\dev\go\src\debug\pe>

Alex

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions