From: Alex Brainman Date: Wed, 17 Aug 2016 04:57:07 +0000 (+1000) Subject: debug/pe: revert CL 22720 X-Git-Tag: go1.8beta1~1798 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=0ece9c4b592502647699c2b15d9f0b7332b26de6;p=gostls13.git debug/pe: revert CL 22720 CL 22720 hid all recently added functionality for go1.7. Make everything exported again, so we could use it now. Updates #15345 Change-Id: Id8ccba7199422b554407ec14c343d2c28fbb8f72 Reviewed-on: https://go-review.googlesource.com/27212 Run-TryBot: Alex Brainman TryBot-Result: Gobot Gobot Reviewed-by: David Crawshaw --- diff --git a/src/debug/pe/file.go b/src/debug/pe/file.go index 3074ba0f50..ef4ae352fe 100644 --- a/src/debug/pe/file.go +++ b/src/debug/pe/file.go @@ -19,8 +19,8 @@ type File struct { OptionalHeader interface{} // of type *OptionalHeader32 or *OptionalHeader64 Sections []*Section Symbols []*Symbol // COFF symbols with auxiliary symbol records removed - _COFFSymbols []COFFSymbol // all COFF symbols (including auxiliary symbol records) - _StringTable _StringTable + COFFSymbols []COFFSymbol // all COFF symbols (including auxiliary symbol records) + StringTable StringTable closer io.Closer } @@ -93,17 +93,17 @@ func NewFile(r io.ReaderAt) (*File, error) { var err error // Read string table. - f._StringTable, err = readStringTable(&f.FileHeader, sr) + f.StringTable, err = readStringTable(&f.FileHeader, sr) if err != nil { return nil, err } // Read symbol table. - f._COFFSymbols, err = readCOFFSymbols(&f.FileHeader, sr) + f.COFFSymbols, err = readCOFFSymbols(&f.FileHeader, sr) if err != nil { return nil, err } - f.Symbols, err = removeAuxSymbols(f._COFFSymbols, f._StringTable) + f.Symbols, err = removeAuxSymbols(f.COFFSymbols, f.StringTable) if err != nil { return nil, err } @@ -141,7 +141,7 @@ func NewFile(r io.ReaderAt) (*File, error) { if err := binary.Read(sr, binary.LittleEndian, sh); err != nil { return nil, err } - name, err := sh.fullName(f._StringTable) + name, err := sh.fullName(f.StringTable) if err != nil { return nil, err } @@ -168,7 +168,7 @@ func NewFile(r io.ReaderAt) (*File, error) { } for i := range f.Sections { var err error - f.Sections[i]._Relocs, err = readRelocs(&f.Sections[i].SectionHeader, sr) + f.Sections[i].Relocs, err = readRelocs(&f.Sections[i].SectionHeader, sr) if err != nil { return nil, err } diff --git a/src/debug/pe/section.go b/src/debug/pe/section.go index 8e6690f082..5d881577d3 100644 --- a/src/debug/pe/section.go +++ b/src/debug/pe/section.go @@ -28,7 +28,7 @@ type SectionHeader32 struct { // fullName finds real name of section sh. Normally name is stored // in sh.Name, but if it is longer then 8 characters, it is stored // in COFF string table st instead. -func (sh *SectionHeader32) fullName(st _StringTable) (string, error) { +func (sh *SectionHeader32) fullName(st StringTable) (string, error) { if sh.Name[0] != '/' { return cstring(sh.Name[:]), nil } @@ -41,15 +41,15 @@ func (sh *SectionHeader32) fullName(st _StringTable) (string, error) { // TODO(brainman): copy all IMAGE_REL_* consts from ldpe.go here -// _Reloc represents a PE COFF relocation. +// Reloc represents a PE COFF relocation. // Each section contains its own relocation list. -type _Reloc struct { +type Reloc struct { VirtualAddress uint32 SymbolTableIndex uint32 Type uint16 } -func readRelocs(sh *SectionHeader, r io.ReadSeeker) ([]_Reloc, error) { +func readRelocs(sh *SectionHeader, r io.ReadSeeker) ([]Reloc, error) { if sh.NumberOfRelocations <= 0 { return nil, nil } @@ -57,7 +57,7 @@ func readRelocs(sh *SectionHeader, r io.ReadSeeker) ([]_Reloc, error) { if err != nil { return nil, fmt.Errorf("fail to seek to %q section relocations: %v", sh.Name, err) } - relocs := make([]_Reloc, sh.NumberOfRelocations) + relocs := make([]Reloc, sh.NumberOfRelocations) err = binary.Read(r, binary.LittleEndian, relocs) if err != nil { return nil, fmt.Errorf("fail to read section relocations: %v", err) @@ -83,7 +83,7 @@ type SectionHeader struct { // Section provides access to PE COFF section. type Section struct { SectionHeader - _Relocs []_Reloc + Relocs []Reloc // Embed ReaderAt for ReadAt method. // Do not embed SectionReader directly diff --git a/src/debug/pe/string.go b/src/debug/pe/string.go index 69837f6d01..357fcf4343 100644 --- a/src/debug/pe/string.go +++ b/src/debug/pe/string.go @@ -19,10 +19,10 @@ func cstring(b []byte) string { return string(b[:i]) } -// _StringTable is a COFF string table. -type _StringTable []byte +// StringTable is a COFF string table. +type StringTable []byte -func readStringTable(fh *FileHeader, r io.ReadSeeker) (_StringTable, error) { +func readStringTable(fh *FileHeader, r io.ReadSeeker) (StringTable, error) { // COFF string table is located right after COFF symbol table. if fh.PointerToSymbolTable <= 0 { return nil, nil @@ -47,13 +47,13 @@ func readStringTable(fh *FileHeader, r io.ReadSeeker) (_StringTable, error) { if err != nil { return nil, fmt.Errorf("fail to read string table: %v", err) } - return _StringTable(buf), nil + return StringTable(buf), nil } // TODO(brainman): decide if start parameter should be int instead of uint32 // String extracts string from COFF string table st at offset start. -func (st _StringTable) String(start uint32) (string, error) { +func (st StringTable) String(start uint32) (string, error) { // start includes 4 bytes of string table length if start < 4 { return "", fmt.Errorf("offset %d is before the start of string table", start) diff --git a/src/debug/pe/symbol.go b/src/debug/pe/symbol.go index 7b8cbf236b..3cf5a101e7 100644 --- a/src/debug/pe/symbol.go +++ b/src/debug/pe/symbol.go @@ -46,17 +46,17 @@ func isSymNameOffset(name [8]byte) (bool, uint32) { return false, 0 } -// _FullName finds real name of symbol sym. Normally name is stored +// FullName finds real name of symbol sym. Normally name is stored // in sym.Name, but if it is longer then 8 characters, it is stored // in COFF string table st instead. -func (sym *COFFSymbol) _FullName(st _StringTable) (string, error) { +func (sym *COFFSymbol) FullName(st StringTable) (string, error) { if ok, offset := isSymNameOffset(sym.Name); ok { return st.String(offset) } return cstring(sym.Name[:]), nil } -func removeAuxSymbols(allsyms []COFFSymbol, st _StringTable) ([]*Symbol, error) { +func removeAuxSymbols(allsyms []COFFSymbol, st StringTable) ([]*Symbol, error) { if len(allsyms) == 0 { return nil, nil } @@ -67,7 +67,7 @@ func removeAuxSymbols(allsyms []COFFSymbol, st _StringTable) ([]*Symbol, error) aux-- continue } - name, err := sym._FullName(st) + name, err := sym.FullName(st) if err != nil { return nil, err }