diff options
| author | Ryan Brown <ribrdb@google.com> | 2015-04-08 12:55:34 -0700 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2015-05-26 23:00:00 +0000 |
| commit | bc89ad598e51b1f4935c2574edbabafff4dc1dea (patch) | |
| tree | 174430d4c8f5ecffbd685a160cda1c6cf7ff29e8 /src/cmd/internal/objfile | |
| parent | fad25c29a1c8c3cffdd18ff8ebff3ead3bdfed1f (diff) | |
| download | go-bc89ad598e51b1f4935c2574edbabafff4dc1dea.tar.xz | |
cmd/internal/objfile: Skip mach-o debug symbols.
This allows objdump to disassemble gcc generated binaries on OS X 10.6.
Change-Id: I1a5bfbf7c252e78215ef1f122520689d5ce6ddca
Reviewed-on: https://go-review.googlesource.com/10383
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/internal/objfile')
| -rw-r--r-- | src/cmd/internal/objfile/macho.go | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/cmd/internal/objfile/macho.go b/src/cmd/internal/objfile/macho.go index a6cd02b930..7371c0d9d1 100644 --- a/src/cmd/internal/objfile/macho.go +++ b/src/cmd/internal/objfile/macho.go @@ -13,6 +13,8 @@ import ( "sort" ) +const stabTypeMask = 0xe0 + type machoFile struct { macho *macho.File } @@ -34,12 +36,19 @@ func (f *machoFile) symbols() ([]Sym, error) { // We infer the size of a symbol by looking at where the next symbol begins. var addrs []uint64 for _, s := range f.macho.Symtab.Syms { - addrs = append(addrs, s.Value) + // Skip stab debug info. + if s.Type&stabTypeMask == 0 { + addrs = append(addrs, s.Value) + } } sort.Sort(uint64s(addrs)) var syms []Sym for _, s := range f.macho.Symtab.Syms { + if s.Type&stabTypeMask != 0 { + // Skip stab debug info. + continue + } sym := Sym{Name: s.Name, Addr: s.Value, Code: '?'} i := sort.Search(len(addrs), func(x int) bool { return addrs[x] > s.Value }) if i < len(addrs) { |
