| // Copyright 2014 The Go Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style | 
 | // license that can be found in the LICENSE file. | 
 |  | 
 | package elf | 
 |  | 
 | import ( | 
 | 	"io" | 
 | 	"path" | 
 | 	"reflect" | 
 | 	"testing" | 
 | ) | 
 |  | 
 | // TODO: remove duplicate code | 
 | func TestSymbols(t *testing.T) { | 
 | 	do := func(file string, ts []Symbol, getfunc func(*File) ([]Symbol, error)) { | 
 | 		var f *File | 
 | 		var err error | 
 | 		if path.Ext(file) == ".gz" { | 
 | 			var r io.ReaderAt | 
 | 			if r, err = decompress(file); err == nil { | 
 | 				f, err = NewFile(r) | 
 | 			} | 
 | 		} else { | 
 | 			f, err = Open(file) | 
 | 		} | 
 | 		if err != nil { | 
 | 			t.Errorf("TestSymbols: cannot open file %s: %v", file, err) | 
 | 			return | 
 | 		} | 
 | 		defer f.Close() | 
 | 		fs, err := getfunc(f) | 
 | 		if err != nil && err != ErrNoSymbols { | 
 | 			t.Error(err) | 
 | 			return | 
 | 		} else if err == ErrNoSymbols { | 
 | 			fs = []Symbol{} | 
 | 		} | 
 | 		if !reflect.DeepEqual(ts, fs) { | 
 | 			t.Errorf("%s: Symbols = %v, want %v", file, ts, fs) | 
 | 		} | 
 | 	} | 
 | 	for file, ts := range symbolsGolden { | 
 | 		do(file, ts, (*File).Symbols) | 
 | 	} | 
 | 	for file, ts := range dynamicSymbolsGolden { | 
 | 		do(file, ts, (*File).DynamicSymbols) | 
 | 	} | 
 | } | 
 |  | 
 | // golden symbol table data generated by testdata/getgoldsym.c | 
 |  | 
 | var symbolsGolden = map[string][]Symbol{ | 
 | 	"testdata/gcc-amd64-linux-exec": { | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x1, | 
 | 			Value:   0x400200, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x2, | 
 | 			Value:   0x40021C, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x3, | 
 | 			Value:   0x400240, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x4, | 
 | 			Value:   0x400268, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x5, | 
 | 			Value:   0x400288, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x6, | 
 | 			Value:   0x4002E8, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x7, | 
 | 			Value:   0x400326, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x8, | 
 | 			Value:   0x400330, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x9, | 
 | 			Value:   0x400350, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0xA, | 
 | 			Value:   0x400368, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0xB, | 
 | 			Value:   0x400398, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0xC, | 
 | 			Value:   0x4003B0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0xD, | 
 | 			Value:   0x4003E0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0xE, | 
 | 			Value:   0x400594, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0xF, | 
 | 			Value:   0x4005A4, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x10, | 
 | 			Value:   0x4005B8, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x11, | 
 | 			Value:   0x4005E0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x12, | 
 | 			Value:   0x600688, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x13, | 
 | 			Value:   0x600698, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x14, | 
 | 			Value:   0x6006A8, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x15, | 
 | 			Value:   0x6006B0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x16, | 
 | 			Value:   0x600850, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x17, | 
 | 			Value:   0x600858, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x18, | 
 | 			Value:   0x600880, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x19, | 
 | 			Value:   0x600898, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x1A, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x1B, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x1C, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x1D, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x1E, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x1F, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x20, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x21, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "init.c", | 
 | 			Info:    0x4, | 
 | 			Other:   0x0, | 
 | 			Section: 0xFFF1, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "initfini.c", | 
 | 			Info:    0x4, | 
 | 			Other:   0x0, | 
 | 			Section: 0xFFF1, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "call_gmon_start", | 
 | 			Info:    0x2, | 
 | 			Other:   0x0, | 
 | 			Section: 0xD, | 
 | 			Value:   0x40040C, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "crtstuff.c", | 
 | 			Info:    0x4, | 
 | 			Other:   0x0, | 
 | 			Section: 0xFFF1, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__CTOR_LIST__", | 
 | 			Info:    0x1, | 
 | 			Other:   0x0, | 
 | 			Section: 0x12, | 
 | 			Value:   0x600688, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__DTOR_LIST__", | 
 | 			Info:    0x1, | 
 | 			Other:   0x0, | 
 | 			Section: 0x13, | 
 | 			Value:   0x600698, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__JCR_LIST__", | 
 | 			Info:    0x1, | 
 | 			Other:   0x0, | 
 | 			Section: 0x14, | 
 | 			Value:   0x6006A8, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__do_global_dtors_aux", | 
 | 			Info:    0x2, | 
 | 			Other:   0x0, | 
 | 			Section: 0xD, | 
 | 			Value:   0x400430, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "completed.6183", | 
 | 			Info:    0x1, | 
 | 			Other:   0x0, | 
 | 			Section: 0x19, | 
 | 			Value:   0x600898, | 
 | 			Size:    0x1, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "p.6181", | 
 | 			Info:    0x1, | 
 | 			Other:   0x0, | 
 | 			Section: 0x18, | 
 | 			Value:   0x600890, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "frame_dummy", | 
 | 			Info:    0x2, | 
 | 			Other:   0x0, | 
 | 			Section: 0xD, | 
 | 			Value:   0x400470, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "crtstuff.c", | 
 | 			Info:    0x4, | 
 | 			Other:   0x0, | 
 | 			Section: 0xFFF1, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__CTOR_END__", | 
 | 			Info:    0x1, | 
 | 			Other:   0x0, | 
 | 			Section: 0x12, | 
 | 			Value:   0x600690, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__DTOR_END__", | 
 | 			Info:    0x1, | 
 | 			Other:   0x0, | 
 | 			Section: 0x13, | 
 | 			Value:   0x6006A0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__FRAME_END__", | 
 | 			Info:    0x1, | 
 | 			Other:   0x0, | 
 | 			Section: 0x11, | 
 | 			Value:   0x400680, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__JCR_END__", | 
 | 			Info:    0x1, | 
 | 			Other:   0x0, | 
 | 			Section: 0x14, | 
 | 			Value:   0x6006A8, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__do_global_ctors_aux", | 
 | 			Info:    0x2, | 
 | 			Other:   0x0, | 
 | 			Section: 0xD, | 
 | 			Value:   0x400560, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "initfini.c", | 
 | 			Info:    0x4, | 
 | 			Other:   0x0, | 
 | 			Section: 0xFFF1, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "hello.c", | 
 | 			Info:    0x4, | 
 | 			Other:   0x0, | 
 | 			Section: 0xFFF1, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "_GLOBAL_OFFSET_TABLE_", | 
 | 			Info:    0x1, | 
 | 			Other:   0x2, | 
 | 			Section: 0x17, | 
 | 			Value:   0x600858, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__init_array_end", | 
 | 			Info:    0x0, | 
 | 			Other:   0x2, | 
 | 			Section: 0x12, | 
 | 			Value:   0x600684, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__init_array_start", | 
 | 			Info:    0x0, | 
 | 			Other:   0x2, | 
 | 			Section: 0x12, | 
 | 			Value:   0x600684, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "_DYNAMIC", | 
 | 			Info:    0x1, | 
 | 			Other:   0x2, | 
 | 			Section: 0x15, | 
 | 			Value:   0x6006B0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "data_start", | 
 | 			Info:    0x20, | 
 | 			Other:   0x0, | 
 | 			Section: 0x18, | 
 | 			Value:   0x600880, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__libc_csu_fini", | 
 | 			Info:    0x12, | 
 | 			Other:   0x0, | 
 | 			Section: 0xD, | 
 | 			Value:   0x4004C0, | 
 | 			Size:    0x2, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "_start", | 
 | 			Info:    0x12, | 
 | 			Other:   0x0, | 
 | 			Section: 0xD, | 
 | 			Value:   0x4003E0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__gmon_start__", | 
 | 			Info:    0x20, | 
 | 			Other:   0x0, | 
 | 			Section: 0x0, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "_Jv_RegisterClasses", | 
 | 			Info:    0x20, | 
 | 			Other:   0x0, | 
 | 			Section: 0x0, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "puts@@GLIBC_2.2.5", | 
 | 			Info:    0x12, | 
 | 			Other:   0x0, | 
 | 			Section: 0x0, | 
 | 			Value:   0x0, | 
 | 			Size:    0x18C, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "_fini", | 
 | 			Info:    0x12, | 
 | 			Other:   0x0, | 
 | 			Section: 0xE, | 
 | 			Value:   0x400594, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__libc_start_main@@GLIBC_2.2.5", | 
 | 			Info:    0x12, | 
 | 			Other:   0x0, | 
 | 			Section: 0x0, | 
 | 			Value:   0x0, | 
 | 			Size:    0x1C2, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "_IO_stdin_used", | 
 | 			Info:    0x11, | 
 | 			Other:   0x0, | 
 | 			Section: 0xF, | 
 | 			Value:   0x4005A4, | 
 | 			Size:    0x4, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__data_start", | 
 | 			Info:    0x10, | 
 | 			Other:   0x0, | 
 | 			Section: 0x18, | 
 | 			Value:   0x600880, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__dso_handle", | 
 | 			Info:    0x11, | 
 | 			Other:   0x2, | 
 | 			Section: 0x18, | 
 | 			Value:   0x600888, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__libc_csu_init", | 
 | 			Info:    0x12, | 
 | 			Other:   0x0, | 
 | 			Section: 0xD, | 
 | 			Value:   0x4004D0, | 
 | 			Size:    0x89, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__bss_start", | 
 | 			Info:    0x10, | 
 | 			Other:   0x0, | 
 | 			Section: 0xFFF1, | 
 | 			Value:   0x600898, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "_end", | 
 | 			Info:    0x10, | 
 | 			Other:   0x0, | 
 | 			Section: 0xFFF1, | 
 | 			Value:   0x6008A0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "_edata", | 
 | 			Info:    0x10, | 
 | 			Other:   0x0, | 
 | 			Section: 0xFFF1, | 
 | 			Value:   0x600898, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "main", | 
 | 			Info:    0x12, | 
 | 			Other:   0x0, | 
 | 			Section: 0xD, | 
 | 			Value:   0x400498, | 
 | 			Size:    0x1B, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "_init", | 
 | 			Info:    0x12, | 
 | 			Other:   0x0, | 
 | 			Section: 0xB, | 
 | 			Value:   0x400398, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 	}, | 
 | 	"testdata/go-relocation-test-clang-x86.obj": { | 
 | 		Symbol{ | 
 | 			Name:    "go-relocation-test-clang.c", | 
 | 			Info:    0x4, | 
 | 			Other:   0x0, | 
 | 			Section: 0xFFF1, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    ".Linfo_string0", | 
 | 			Info:    0x0, | 
 | 			Other:   0x0, | 
 | 			Section: 0xC, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    ".Linfo_string1", | 
 | 			Info:    0x0, | 
 | 			Other:   0x0, | 
 | 			Section: 0xC, | 
 | 			Value:   0x2C, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    ".Linfo_string2", | 
 | 			Info:    0x0, | 
 | 			Other:   0x0, | 
 | 			Section: 0xC, | 
 | 			Value:   0x47, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    ".Linfo_string3", | 
 | 			Info:    0x0, | 
 | 			Other:   0x0, | 
 | 			Section: 0xC, | 
 | 			Value:   0x4C, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    ".Linfo_string4", | 
 | 			Info:    0x0, | 
 | 			Other:   0x0, | 
 | 			Section: 0xC, | 
 | 			Value:   0x4E, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x1, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x2, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x3, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x4, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x6, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x7, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x8, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0xA, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0xC, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0xD, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0xE, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0xF, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "", | 
 | 			Info:    0x3, | 
 | 			Other:   0x0, | 
 | 			Section: 0x10, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "v", | 
 | 			Info:    0x11, | 
 | 			Other:   0x0, | 
 | 			Section: 0xFFF2, | 
 | 			Value:   0x4, | 
 | 			Size:    0x4, | 
 | 		}, | 
 | 	}, | 
 | 	"testdata/hello-world-core.gz": {}, | 
 | } | 
 |  | 
 | var dynamicSymbolsGolden = map[string][]Symbol{ | 
 | 	"testdata/gcc-amd64-linux-exec": { | 
 | 		Symbol{ | 
 | 			Name:    "__gmon_start__", | 
 | 			Info:    0x20, | 
 | 			Other:   0x0, | 
 | 			Section: 0x0, | 
 | 			Value:   0x0, | 
 | 			Size:    0x0, | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "puts", | 
 | 			Info:    0x12, | 
 | 			Other:   0x0, | 
 | 			Section: 0x0, | 
 | 			Value:   0x0, | 
 | 			Size:    0x18C, | 
 | 			Version: "GLIBC_2.2.5", | 
 | 			Library: "libc.so.6", | 
 | 		}, | 
 | 		Symbol{ | 
 | 			Name:    "__libc_start_main", | 
 | 			Info:    0x12, | 
 | 			Other:   0x0, | 
 | 			Section: 0x0, | 
 | 			Value:   0x0, | 
 | 			Size:    0x1C2, | 
 | 			Version: "GLIBC_2.2.5", | 
 | 			Library: "libc.so.6", | 
 | 		}, | 
 | 	}, | 
 | 	"testdata/go-relocation-test-clang-x86.obj": {}, | 
 | 	"testdata/hello-world-core.gz":              {}, | 
 | } |