Source file
src/debug/elf/symbols_test.go
1
2
3
4
5 package elf
6
7 import (
8 "io"
9 "path"
10 "reflect"
11 "testing"
12 )
13
14
15 func TestSymbols(t *testing.T) {
16 do := func(file string, ts []Symbol, getfunc func(*File) ([]Symbol, error)) {
17 var f *File
18 var err error
19 if path.Ext(file) == ".gz" {
20 var r io.ReaderAt
21 if r, err = decompress(file); err == nil {
22 f, err = NewFile(r)
23 }
24 } else {
25 f, err = Open(file)
26 }
27 if err != nil {
28 t.Errorf("TestSymbols: cannot open file %s: %v", file, err)
29 return
30 }
31 defer f.Close()
32 fs, err := getfunc(f)
33 if err != nil && err != ErrNoSymbols {
34 t.Error(err)
35 return
36 } else if err == ErrNoSymbols {
37 fs = []Symbol{}
38 }
39 if !reflect.DeepEqual(ts, fs) {
40 t.Errorf("%s: Symbols = %v, want %v", file, fs, ts)
41 }
42
43 for i, s := range fs {
44 if s.HasVersion {
45
46 if s.VersionIndex.IsHidden() {
47 t.Errorf("%s: symbol %d: unexpected hidden version", file, i)
48 }
49 if got, want := s.VersionIndex.Index(), uint16(s.VersionIndex); got != want {
50 t.Errorf("%s: symbol %d: VersionIndex.Index() == %d, want %d", file, i, got, want)
51 }
52 }
53 }
54
55 }
56 for file, ts := range symbolsGolden {
57 do(file, ts, (*File).Symbols)
58 }
59 for file, ts := range dynamicSymbolsGolden {
60 do(file, ts, (*File).DynamicSymbols)
61 }
62 }
63
64
65
66 var symbolsGolden = map[string][]Symbol{
67 "testdata/gcc-amd64-linux-exec": {
68 Symbol{
69 Name: "",
70 Info: 0x3,
71 Other: 0x0,
72 HasVersion: false,
73 VersionIndex: 0,
74 Section: 0x1,
75 Value: 0x400200,
76 Size: 0x0,
77 },
78 Symbol{
79 Name: "",
80 Info: 0x3,
81 Other: 0x0,
82 HasVersion: false,
83 VersionIndex: 0,
84 Section: 0x2,
85 Value: 0x40021C,
86 Size: 0x0,
87 },
88 Symbol{
89 Name: "",
90 Info: 0x3,
91 Other: 0x0,
92 HasVersion: false,
93 VersionIndex: 0,
94 Section: 0x3,
95 Value: 0x400240,
96 Size: 0x0,
97 },
98 Symbol{
99 Name: "",
100 Info: 0x3,
101 Other: 0x0,
102 HasVersion: false,
103 VersionIndex: 0,
104 Section: 0x4,
105 Value: 0x400268,
106 Size: 0x0,
107 },
108 Symbol{
109 Name: "",
110 Info: 0x3,
111 Other: 0x0,
112 HasVersion: false,
113 VersionIndex: 0,
114 Section: 0x5,
115 Value: 0x400288,
116 Size: 0x0,
117 },
118 Symbol{
119 Name: "",
120 Info: 0x3,
121 Other: 0x0,
122 HasVersion: false,
123 VersionIndex: 0,
124 Section: 0x6,
125 Value: 0x4002E8,
126 Size: 0x0,
127 },
128 Symbol{
129 Name: "",
130 Info: 0x3,
131 Other: 0x0,
132 HasVersion: false,
133 VersionIndex: 0,
134 Section: 0x7,
135 Value: 0x400326,
136 Size: 0x0,
137 },
138 Symbol{
139 Name: "",
140 Info: 0x3,
141 Other: 0x0,
142 HasVersion: false,
143 VersionIndex: 0,
144 Section: 0x8,
145 Value: 0x400330,
146 Size: 0x0,
147 },
148 Symbol{
149 Name: "",
150 Info: 0x3,
151 Other: 0x0,
152 HasVersion: false,
153 VersionIndex: 0,
154 Section: 0x9,
155 Value: 0x400350,
156 Size: 0x0,
157 },
158 Symbol{
159 Name: "",
160 Info: 0x3,
161 Other: 0x0,
162 HasVersion: false,
163 VersionIndex: 0,
164 Section: 0xA,
165 Value: 0x400368,
166 Size: 0x0,
167 },
168 Symbol{
169 Name: "",
170 Info: 0x3,
171 Other: 0x0,
172 HasVersion: false,
173 VersionIndex: 0,
174 Section: 0xB,
175 Value: 0x400398,
176 Size: 0x0,
177 },
178 Symbol{
179 Name: "",
180 Info: 0x3,
181 Other: 0x0,
182 HasVersion: false,
183 VersionIndex: 0,
184 Section: 0xC,
185 Value: 0x4003B0,
186 Size: 0x0,
187 },
188 Symbol{
189 Name: "",
190 Info: 0x3,
191 Other: 0x0,
192 HasVersion: false,
193 VersionIndex: 0,
194 Section: 0xD,
195 Value: 0x4003E0,
196 Size: 0x0,
197 },
198 Symbol{
199 Name: "",
200 Info: 0x3,
201 Other: 0x0,
202 HasVersion: false,
203 VersionIndex: 0,
204 Section: 0xE,
205 Value: 0x400594,
206 Size: 0x0,
207 },
208 Symbol{
209 Name: "",
210 Info: 0x3,
211 Other: 0x0,
212 HasVersion: false,
213 VersionIndex: 0,
214 Section: 0xF,
215 Value: 0x4005A4,
216 Size: 0x0,
217 },
218 Symbol{
219 Name: "",
220 Info: 0x3,
221 Other: 0x0,
222 HasVersion: false,
223 VersionIndex: 0,
224 Section: 0x10,
225 Value: 0x4005B8,
226 Size: 0x0,
227 },
228 Symbol{
229 Name: "",
230 Info: 0x3,
231 Other: 0x0,
232 HasVersion: false,
233 VersionIndex: 0,
234 Section: 0x11,
235 Value: 0x4005E0,
236 Size: 0x0,
237 },
238 Symbol{
239 Name: "",
240 Info: 0x3,
241 Other: 0x0,
242 HasVersion: false,
243 VersionIndex: 0,
244 Section: 0x12,
245 Value: 0x600688,
246 Size: 0x0,
247 },
248 Symbol{
249 Name: "",
250 Info: 0x3,
251 Other: 0x0,
252 HasVersion: false,
253 VersionIndex: 0,
254 Section: 0x13,
255 Value: 0x600698,
256 Size: 0x0,
257 },
258 Symbol{
259 Name: "",
260 Info: 0x3,
261 Other: 0x0,
262 HasVersion: false,
263 VersionIndex: 0,
264 Section: 0x14,
265 Value: 0x6006A8,
266 Size: 0x0,
267 },
268 Symbol{
269 Name: "",
270 Info: 0x3,
271 Other: 0x0,
272 HasVersion: false,
273 VersionIndex: 0,
274 Section: 0x15,
275 Value: 0x6006B0,
276 Size: 0x0,
277 },
278 Symbol{
279 Name: "",
280 Info: 0x3,
281 Other: 0x0,
282 HasVersion: false,
283 VersionIndex: 0,
284 Section: 0x16,
285 Value: 0x600850,
286 Size: 0x0,
287 },
288 Symbol{
289 Name: "",
290 Info: 0x3,
291 Other: 0x0,
292 HasVersion: false,
293 VersionIndex: 0,
294 Section: 0x17,
295 Value: 0x600858,
296 Size: 0x0,
297 },
298 Symbol{
299 Name: "",
300 Info: 0x3,
301 Other: 0x0,
302 HasVersion: false,
303 VersionIndex: 0,
304 Section: 0x18,
305 Value: 0x600880,
306 Size: 0x0,
307 },
308 Symbol{
309 Name: "",
310 Info: 0x3,
311 Other: 0x0,
312 HasVersion: false,
313 VersionIndex: 0,
314 Section: 0x19,
315 Value: 0x600898,
316 Size: 0x0,
317 },
318 Symbol{
319 Name: "",
320 Info: 0x3,
321 Other: 0x0,
322 HasVersion: false,
323 VersionIndex: 0,
324 Section: 0x1A,
325 Value: 0x0,
326 Size: 0x0,
327 },
328 Symbol{
329 Name: "",
330 Info: 0x3,
331 Other: 0x0,
332 HasVersion: false,
333 VersionIndex: 0,
334 Section: 0x1B,
335 Value: 0x0,
336 Size: 0x0,
337 },
338 Symbol{
339 Name: "",
340 Info: 0x3,
341 Other: 0x0,
342 HasVersion: false,
343 VersionIndex: 0,
344 Section: 0x1C,
345 Value: 0x0,
346 Size: 0x0,
347 },
348 Symbol{
349 Name: "",
350 Info: 0x3,
351 Other: 0x0,
352 HasVersion: false,
353 VersionIndex: 0,
354 Section: 0x1D,
355 Value: 0x0,
356 Size: 0x0,
357 },
358 Symbol{
359 Name: "",
360 Info: 0x3,
361 Other: 0x0,
362 HasVersion: false,
363 VersionIndex: 0,
364 Section: 0x1E,
365 Value: 0x0,
366 Size: 0x0,
367 },
368 Symbol{
369 Name: "",
370 Info: 0x3,
371 Other: 0x0,
372 HasVersion: false,
373 VersionIndex: 0,
374 Section: 0x1F,
375 Value: 0x0,
376 Size: 0x0,
377 },
378 Symbol{
379 Name: "",
380 Info: 0x3,
381 Other: 0x0,
382 HasVersion: false,
383 VersionIndex: 0,
384 Section: 0x20,
385 Value: 0x0,
386 Size: 0x0,
387 },
388 Symbol{
389 Name: "",
390 Info: 0x3,
391 Other: 0x0,
392 HasVersion: false,
393 VersionIndex: 0,
394 Section: 0x21,
395 Value: 0x0,
396 Size: 0x0,
397 },
398 Symbol{
399 Name: "init.c",
400 Info: 0x4,
401 Other: 0x0,
402 HasVersion: false,
403 VersionIndex: 0,
404 Section: 0xFFF1,
405 Value: 0x0,
406 Size: 0x0,
407 },
408 Symbol{
409 Name: "initfini.c",
410 Info: 0x4,
411 Other: 0x0,
412 HasVersion: false,
413 VersionIndex: 0,
414 Section: 0xFFF1,
415 Value: 0x0,
416 Size: 0x0,
417 },
418 Symbol{
419 Name: "call_gmon_start",
420 Info: 0x2,
421 Other: 0x0,
422 HasVersion: false,
423 VersionIndex: 0,
424 Section: 0xD,
425 Value: 0x40040C,
426 Size: 0x0,
427 },
428 Symbol{
429 Name: "crtstuff.c",
430 Info: 0x4,
431 Other: 0x0,
432 HasVersion: false,
433 VersionIndex: 0,
434 Section: 0xFFF1,
435 Value: 0x0,
436 Size: 0x0,
437 },
438 Symbol{
439 Name: "__CTOR_LIST__",
440 Info: 0x1,
441 Other: 0x0,
442 HasVersion: false,
443 VersionIndex: 0,
444 Section: 0x12,
445 Value: 0x600688,
446 Size: 0x0,
447 },
448 Symbol{
449 Name: "__DTOR_LIST__",
450 Info: 0x1,
451 Other: 0x0,
452 HasVersion: false,
453 VersionIndex: 0,
454 Section: 0x13,
455 Value: 0x600698,
456 Size: 0x0,
457 },
458 Symbol{
459 Name: "__JCR_LIST__",
460 Info: 0x1,
461 Other: 0x0,
462 HasVersion: false,
463 VersionIndex: 0,
464 Section: 0x14,
465 Value: 0x6006A8,
466 Size: 0x0,
467 },
468 Symbol{
469 Name: "__do_global_dtors_aux",
470 Info: 0x2,
471 Other: 0x0,
472 HasVersion: false,
473 VersionIndex: 0,
474 Section: 0xD,
475 Value: 0x400430,
476 Size: 0x0,
477 },
478 Symbol{
479 Name: "completed.6183",
480 Info: 0x1,
481 Other: 0x0,
482 HasVersion: false,
483 VersionIndex: 0,
484 Section: 0x19,
485 Value: 0x600898,
486 Size: 0x1,
487 },
488 Symbol{
489 Name: "p.6181",
490 Info: 0x1,
491 Other: 0x0,
492 HasVersion: false,
493 VersionIndex: 0,
494 Section: 0x18,
495 Value: 0x600890,
496 Size: 0x0,
497 },
498 Symbol{
499 Name: "frame_dummy",
500 Info: 0x2,
501 Other: 0x0,
502 HasVersion: false,
503 VersionIndex: 0,
504 Section: 0xD,
505 Value: 0x400470,
506 Size: 0x0,
507 },
508 Symbol{
509 Name: "crtstuff.c",
510 Info: 0x4,
511 Other: 0x0,
512 HasVersion: false,
513 VersionIndex: 0,
514 Section: 0xFFF1,
515 Value: 0x0,
516 Size: 0x0,
517 },
518 Symbol{
519 Name: "__CTOR_END__",
520 Info: 0x1,
521 Other: 0x0,
522 HasVersion: false,
523 VersionIndex: 0,
524 Section: 0x12,
525 Value: 0x600690,
526 Size: 0x0,
527 },
528 Symbol{
529 Name: "__DTOR_END__",
530 Info: 0x1,
531 Other: 0x0,
532 HasVersion: false,
533 VersionIndex: 0,
534 Section: 0x13,
535 Value: 0x6006A0,
536 Size: 0x0,
537 },
538 Symbol{
539 Name: "__FRAME_END__",
540 Info: 0x1,
541 Other: 0x0,
542 HasVersion: false,
543 VersionIndex: 0,
544 Section: 0x11,
545 Value: 0x400680,
546 Size: 0x0,
547 },
548 Symbol{
549 Name: "__JCR_END__",
550 Info: 0x1,
551 Other: 0x0,
552 HasVersion: false,
553 VersionIndex: 0,
554 Section: 0x14,
555 Value: 0x6006A8,
556 Size: 0x0,
557 },
558 Symbol{
559 Name: "__do_global_ctors_aux",
560 Info: 0x2,
561 Other: 0x0,
562 HasVersion: false,
563 VersionIndex: 0,
564 Section: 0xD,
565 Value: 0x400560,
566 Size: 0x0,
567 },
568 Symbol{
569 Name: "initfini.c",
570 Info: 0x4,
571 Other: 0x0,
572 HasVersion: false,
573 VersionIndex: 0,
574 Section: 0xFFF1,
575 Value: 0x0,
576 Size: 0x0,
577 },
578 Symbol{
579 Name: "hello.c",
580 Info: 0x4,
581 Other: 0x0,
582 HasVersion: false,
583 VersionIndex: 0,
584 Section: 0xFFF1,
585 Value: 0x0,
586 Size: 0x0,
587 },
588 Symbol{
589 Name: "_GLOBAL_OFFSET_TABLE_",
590 Info: 0x1,
591 Other: 0x2,
592 HasVersion: false,
593 VersionIndex: 0,
594 Section: 0x17,
595 Value: 0x600858,
596 Size: 0x0,
597 },
598 Symbol{
599 Name: "__init_array_end",
600 Info: 0x0,
601 Other: 0x2,
602 HasVersion: false,
603 VersionIndex: 0,
604 Section: 0x12,
605 Value: 0x600684,
606 Size: 0x0,
607 },
608 Symbol{
609 Name: "__init_array_start",
610 Info: 0x0,
611 Other: 0x2,
612 HasVersion: false,
613 VersionIndex: 0,
614 Section: 0x12,
615 Value: 0x600684,
616 Size: 0x0,
617 },
618 Symbol{
619 Name: "_DYNAMIC",
620 Info: 0x1,
621 Other: 0x2,
622 HasVersion: false,
623 VersionIndex: 0,
624 Section: 0x15,
625 Value: 0x6006B0,
626 Size: 0x0,
627 },
628 Symbol{
629 Name: "data_start",
630 Info: 0x20,
631 Other: 0x0,
632 HasVersion: false,
633 VersionIndex: 0,
634 Section: 0x18,
635 Value: 0x600880,
636 Size: 0x0,
637 },
638 Symbol{
639 Name: "__libc_csu_fini",
640 Info: 0x12,
641 Other: 0x0,
642 HasVersion: false,
643 VersionIndex: 0,
644 Section: 0xD,
645 Value: 0x4004C0,
646 Size: 0x2,
647 },
648 Symbol{
649 Name: "_start",
650 Info: 0x12,
651 Other: 0x0,
652 HasVersion: false,
653 VersionIndex: 0,
654 Section: 0xD,
655 Value: 0x4003E0,
656 Size: 0x0,
657 },
658 Symbol{
659 Name: "__gmon_start__",
660 Info: 0x20,
661 Other: 0x0,
662 HasVersion: false,
663 VersionIndex: 0,
664 Section: 0x0,
665 Value: 0x0,
666 Size: 0x0,
667 },
668 Symbol{
669 Name: "_Jv_RegisterClasses",
670 Info: 0x20,
671 Other: 0x0,
672 HasVersion: false,
673 VersionIndex: 0,
674 Section: 0x0,
675 Value: 0x0,
676 Size: 0x0,
677 },
678 Symbol{
679 Name: "puts@@GLIBC_2.2.5",
680 Info: 0x12,
681 Other: 0x0,
682 HasVersion: false,
683 VersionIndex: 0,
684 Section: 0x0,
685 Value: 0x0,
686 Size: 0x18C,
687 },
688 Symbol{
689 Name: "_fini",
690 Info: 0x12,
691 Other: 0x0,
692 HasVersion: false,
693 VersionIndex: 0,
694 Section: 0xE,
695 Value: 0x400594,
696 Size: 0x0,
697 },
698 Symbol{
699 Name: "__libc_start_main@@GLIBC_2.2.5",
700 Info: 0x12,
701 Other: 0x0,
702 HasVersion: false,
703 VersionIndex: 0,
704 Section: 0x0,
705 Value: 0x0,
706 Size: 0x1C2,
707 },
708 Symbol{
709 Name: "_IO_stdin_used",
710 Info: 0x11,
711 Other: 0x0,
712 HasVersion: false,
713 VersionIndex: 0,
714 Section: 0xF,
715 Value: 0x4005A4,
716 Size: 0x4,
717 },
718 Symbol{
719 Name: "__data_start",
720 Info: 0x10,
721 Other: 0x0,
722 HasVersion: false,
723 VersionIndex: 0,
724 Section: 0x18,
725 Value: 0x600880,
726 Size: 0x0,
727 },
728 Symbol{
729 Name: "__dso_handle",
730 Info: 0x11,
731 Other: 0x2,
732 HasVersion: false,
733 VersionIndex: 0,
734 Section: 0x18,
735 Value: 0x600888,
736 Size: 0x0,
737 },
738 Symbol{
739 Name: "__libc_csu_init",
740 Info: 0x12,
741 Other: 0x0,
742 HasVersion: false,
743 VersionIndex: 0,
744 Section: 0xD,
745 Value: 0x4004D0,
746 Size: 0x89,
747 },
748 Symbol{
749 Name: "__bss_start",
750 Info: 0x10,
751 Other: 0x0,
752 HasVersion: false,
753 VersionIndex: 0,
754 Section: 0xFFF1,
755 Value: 0x600898,
756 Size: 0x0,
757 },
758 Symbol{
759 Name: "_end",
760 Info: 0x10,
761 Other: 0x0,
762 HasVersion: false,
763 VersionIndex: 0,
764 Section: 0xFFF1,
765 Value: 0x6008A0,
766 Size: 0x0,
767 },
768 Symbol{
769 Name: "_edata",
770 Info: 0x10,
771 Other: 0x0,
772 HasVersion: false,
773 VersionIndex: 0,
774 Section: 0xFFF1,
775 Value: 0x600898,
776 Size: 0x0,
777 },
778 Symbol{
779 Name: "main",
780 Info: 0x12,
781 Other: 0x0,
782 HasVersion: false,
783 VersionIndex: 0,
784 Section: 0xD,
785 Value: 0x400498,
786 Size: 0x1B,
787 },
788 Symbol{
789 Name: "_init",
790 Info: 0x12,
791 Other: 0x0,
792 HasVersion: false,
793 VersionIndex: 0,
794 Section: 0xB,
795 Value: 0x400398,
796 Size: 0x0,
797 },
798 },
799 "testdata/go-relocation-test-clang-x86.obj": {
800 Symbol{
801 Name: "go-relocation-test-clang.c",
802 Info: 0x4,
803 Other: 0x0,
804 HasVersion: false,
805 VersionIndex: 0,
806 Section: 0xFFF1,
807 Value: 0x0,
808 Size: 0x0,
809 },
810 Symbol{
811 Name: ".Linfo_string0",
812 Info: 0x0,
813 Other: 0x0,
814 HasVersion: false,
815 VersionIndex: 0,
816 Section: 0xC,
817 Value: 0x0,
818 Size: 0x0,
819 },
820 Symbol{
821 Name: ".Linfo_string1",
822 Info: 0x0,
823 Other: 0x0,
824 HasVersion: false,
825 VersionIndex: 0,
826 Section: 0xC,
827 Value: 0x2C,
828 Size: 0x0,
829 },
830 Symbol{
831 Name: ".Linfo_string2",
832 Info: 0x0,
833 Other: 0x0,
834 HasVersion: false,
835 VersionIndex: 0,
836 Section: 0xC,
837 Value: 0x47,
838 Size: 0x0,
839 },
840 Symbol{
841 Name: ".Linfo_string3",
842 Info: 0x0,
843 Other: 0x0,
844 HasVersion: false,
845 VersionIndex: 0,
846 Section: 0xC,
847 Value: 0x4C,
848 Size: 0x0,
849 },
850 Symbol{
851 Name: ".Linfo_string4",
852 Info: 0x0,
853 Other: 0x0,
854 HasVersion: false,
855 VersionIndex: 0,
856 Section: 0xC,
857 Value: 0x4E,
858 Size: 0x0,
859 },
860 Symbol{
861 Name: "",
862 Info: 0x3,
863 Other: 0x0,
864 HasVersion: false,
865 VersionIndex: 0,
866 Section: 0x1,
867 Value: 0x0,
868 Size: 0x0,
869 },
870 Symbol{
871 Name: "",
872 Info: 0x3,
873 Other: 0x0,
874 HasVersion: false,
875 VersionIndex: 0,
876 Section: 0x2,
877 Value: 0x0,
878 Size: 0x0,
879 },
880 Symbol{
881 Name: "",
882 Info: 0x3,
883 Other: 0x0,
884 HasVersion: false,
885 VersionIndex: 0,
886 Section: 0x3,
887 Value: 0x0,
888 Size: 0x0,
889 },
890 Symbol{
891 Name: "",
892 Info: 0x3,
893 Other: 0x0,
894 HasVersion: false,
895 VersionIndex: 0,
896 Section: 0x4,
897 Value: 0x0,
898 Size: 0x0,
899 },
900 Symbol{
901 Name: "",
902 Info: 0x3,
903 Other: 0x0,
904 HasVersion: false,
905 VersionIndex: 0,
906 Section: 0x6,
907 Value: 0x0,
908 Size: 0x0,
909 },
910 Symbol{
911 Name: "",
912 Info: 0x3,
913 Other: 0x0,
914 HasVersion: false,
915 VersionIndex: 0,
916 Section: 0x7,
917 Value: 0x0,
918 Size: 0x0,
919 },
920 Symbol{
921 Name: "",
922 Info: 0x3,
923 Other: 0x0,
924 HasVersion: false,
925 VersionIndex: 0,
926 Section: 0x8,
927 Value: 0x0,
928 Size: 0x0,
929 },
930 Symbol{
931 Name: "",
932 Info: 0x3,
933 Other: 0x0,
934 HasVersion: false,
935 VersionIndex: 0,
936 Section: 0xA,
937 Value: 0x0,
938 Size: 0x0,
939 },
940 Symbol{
941 Name: "",
942 Info: 0x3,
943 Other: 0x0,
944 HasVersion: false,
945 VersionIndex: 0,
946 Section: 0xC,
947 Value: 0x0,
948 Size: 0x0,
949 },
950 Symbol{
951 Name: "",
952 Info: 0x3,
953 Other: 0x0,
954 HasVersion: false,
955 VersionIndex: 0,
956 Section: 0xD,
957 Value: 0x0,
958 Size: 0x0,
959 },
960 Symbol{
961 Name: "",
962 Info: 0x3,
963 Other: 0x0,
964 HasVersion: false,
965 VersionIndex: 0,
966 Section: 0xE,
967 Value: 0x0,
968 Size: 0x0,
969 },
970 Symbol{
971 Name: "",
972 Info: 0x3,
973 Other: 0x0,
974 HasVersion: false,
975 VersionIndex: 0,
976 Section: 0xF,
977 Value: 0x0,
978 Size: 0x0,
979 },
980 Symbol{
981 Name: "",
982 Info: 0x3,
983 Other: 0x0,
984 HasVersion: false,
985 VersionIndex: 0,
986 Section: 0x10,
987 Value: 0x0,
988 Size: 0x0,
989 },
990 Symbol{
991 Name: "v",
992 Info: 0x11,
993 Other: 0x0,
994 HasVersion: false,
995 VersionIndex: 0,
996 Section: 0xFFF2,
997 Value: 0x4,
998 Size: 0x4,
999 },
1000 },
1001 "testdata/hello-world-core.gz": {},
1002 }
1003
1004 var dynamicSymbolsGolden = map[string][]Symbol{
1005 "testdata/gcc-amd64-linux-exec": {
1006 Symbol{
1007 Name: "__gmon_start__",
1008 Info: 0x20,
1009 Other: 0x0,
1010 HasVersion: true,
1011 VersionIndex: 0x0,
1012 Section: 0x0,
1013 Value: 0x0,
1014 Size: 0x0,
1015 },
1016 Symbol{
1017 Name: "puts",
1018 Info: 0x12,
1019 Other: 0x0,
1020 HasVersion: true,
1021 VersionIndex: 0x2,
1022 Section: 0x0,
1023 Value: 0x0,
1024 Size: 0x18C,
1025 Version: "GLIBC_2.2.5",
1026 Library: "libc.so.6",
1027 },
1028 Symbol{
1029 Name: "__libc_start_main",
1030 Info: 0x12,
1031 Other: 0x0,
1032 HasVersion: true,
1033 VersionIndex: 0x2,
1034 Section: 0x0,
1035 Value: 0x0,
1036 Size: 0x1C2,
1037 Version: "GLIBC_2.2.5",
1038 Library: "libc.so.6",
1039 },
1040 },
1041 "testdata/go-relocation-test-clang-x86.obj": {},
1042 "testdata/hello-world-core.gz": {},
1043 "testdata/libtiffxx.so_": {
1044 Symbol{
1045 Name: "_ZNSo3putEc",
1046 Info: 0x12,
1047 Other: 0x0,
1048 HasVersion: true,
1049 VersionIndex: 0x3,
1050 Section: 0x0,
1051 Value: 0x0,
1052 Size: 0x0,
1053 Version: "GLIBCXX_3.4",
1054 Library: "libstdc++.so.6",
1055 },
1056 Symbol{
1057 Name: "strchr",
1058 Info: 0x12,
1059 Other: 0x0,
1060 HasVersion: true,
1061 VersionIndex: 0x4,
1062 Section: 0x0,
1063 Value: 0x0,
1064 Size: 0x0,
1065 Version: "GLIBC_2.2.5",
1066 Library: "libc.so.6",
1067 },
1068 Symbol{
1069 Name: "__cxa_finalize",
1070 Info: 0x22,
1071 Other: 0x0,
1072 HasVersion: true,
1073 VersionIndex: 0x4,
1074 Section: 0x0,
1075 Value: 0x0,
1076 Size: 0x0,
1077 Version: "GLIBC_2.2.5",
1078 Library: "libc.so.6",
1079 },
1080 Symbol{
1081 Name: "_ZNSo5tellpEv",
1082 Info: 0x12,
1083 Other: 0x0,
1084 HasVersion: true,
1085 VersionIndex: 0x3,
1086 Section: 0x0,
1087 Value: 0x0,
1088 Size: 0x0,
1089 Version: "GLIBCXX_3.4",
1090 Library: "libstdc++.so.6",
1091 },
1092 Symbol{
1093 Name: "_ZNSo5seekpElSt12_Ios_Seekdir",
1094 Info: 0x12,
1095 Other: 0x0,
1096 HasVersion: true,
1097 VersionIndex: 0x3,
1098 Section: 0x0,
1099 Value: 0x0,
1100 Size: 0x0,
1101 Version: "GLIBCXX_3.4",
1102 Library: "libstdc++.so.6",
1103 },
1104 Symbol{
1105 Name: "_Znwm",
1106 Info: 0x12,
1107 Other: 0x0,
1108 HasVersion: true,
1109 VersionIndex: 0x3,
1110 Section: 0x0,
1111 Value: 0x0,
1112 Size: 0x0,
1113 Version: "GLIBCXX_3.4",
1114 Library: "libstdc++.so.6",
1115 },
1116 Symbol{
1117 Name: "_ZdlPvm",
1118 Info: 0x12,
1119 Other: 0x0,
1120 HasVersion: true,
1121 VersionIndex: 0x5,
1122 Section: 0x0,
1123 Value: 0x0,
1124 Size: 0x0,
1125 Version: "CXXABI_1.3.9",
1126 Library: "libstdc++.so.6",
1127 },
1128 Symbol{
1129 Name: "__stack_chk_fail",
1130 Info: 0x12,
1131 Other: 0x0,
1132 HasVersion: true,
1133 VersionIndex: 0x6,
1134 Section: 0x0,
1135 Value: 0x0,
1136 Size: 0x0,
1137 Version: "GLIBC_2.4",
1138 Library: "libc.so.6",
1139 },
1140 Symbol{
1141 Name: "_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l",
1142 Info: 0x12,
1143 Other: 0x0,
1144 HasVersion: true,
1145 VersionIndex: 0x7,
1146 Section: 0x0,
1147 Value: 0x0,
1148 Size: 0x0,
1149 Version: "GLIBCXX_3.4.9",
1150 Library: "libstdc++.so.6",
1151 },
1152 Symbol{
1153 Name: "_ZNSo5seekpESt4fposI11__mbstate_tE",
1154 Info: 0x12,
1155 Other: 0x0,
1156 HasVersion: true,
1157 VersionIndex: 0x3,
1158 Section: 0x0,
1159 Value: 0x0,
1160 Size: 0x0,
1161 Version: "GLIBCXX_3.4",
1162 Library: "libstdc++.so.6",
1163 },
1164 Symbol{
1165 Name: "_ZNSi4readEPcl",
1166 Info: 0x12,
1167 Other: 0x0,
1168 HasVersion: true,
1169 VersionIndex: 0x3,
1170 Section: 0x0,
1171 Value: 0x0,
1172 Size: 0x0,
1173 Version: "GLIBCXX_3.4",
1174 Library: "libstdc++.so.6",
1175 },
1176 Symbol{
1177 Name: "_ZNSi5seekgESt4fposI11__mbstate_tE",
1178 Info: 0x12,
1179 Other: 0x0,
1180 HasVersion: true,
1181 VersionIndex: 0x3,
1182 Section: 0x0,
1183 Value: 0x0,
1184 Size: 0x0,
1185 Version: "GLIBCXX_3.4",
1186 Library: "libstdc++.so.6",
1187 },
1188 Symbol{
1189 Name: "_ZNSo5writeEPKcl",
1190 Info: 0x12,
1191 Other: 0x0,
1192 HasVersion: true,
1193 VersionIndex: 0x3,
1194 Section: 0x0,
1195 Value: 0x0,
1196 Size: 0x0,
1197 Version: "GLIBCXX_3.4",
1198 Library: "libstdc++.so.6",
1199 },
1200 Symbol{
1201 Name: "_ZNSi5seekgElSt12_Ios_Seekdir",
1202 Info: 0x12,
1203 Other: 0x0,
1204 HasVersion: true,
1205 VersionIndex: 0x3,
1206 Section: 0x0,
1207 Value: 0x0,
1208 Size: 0x0,
1209 Version: "GLIBCXX_3.4",
1210 Library: "libstdc++.so.6",
1211 },
1212 Symbol{
1213 Name: "_ZSt21ios_base_library_initv",
1214 Info: 0x12,
1215 Other: 0x0,
1216 HasVersion: true,
1217 VersionIndex: 0x8,
1218 Section: 0x0,
1219 Value: 0x0,
1220 Size: 0x0,
1221 Version: "GLIBCXX_3.4.32",
1222 Library: "libstdc++.so.6",
1223 },
1224 Symbol{
1225 Name: "TIFFClientOpen",
1226 Info: 0x12,
1227 Other: 0x0,
1228 HasVersion: true,
1229 VersionIndex: 0x9,
1230 Section: 0x0,
1231 Value: 0x0,
1232 Size: 0x0,
1233 Version: "LIBTIFF_4.0",
1234 Library: "libtiff.so.6",
1235 },
1236 Symbol{
1237 Name: "_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate",
1238 Info: 0x12,
1239 Other: 0x0,
1240 HasVersion: true,
1241 VersionIndex: 0x3,
1242 Section: 0x0,
1243 Value: 0x0,
1244 Size: 0x0,
1245 Version: "GLIBCXX_3.4",
1246 Library: "libstdc++.so.6",
1247 },
1248 Symbol{
1249 Name: "_ZNSi5tellgEv",
1250 Info: 0x12,
1251 Other: 0x0,
1252 HasVersion: true,
1253 VersionIndex: 0x3,
1254 Section: 0x0,
1255 Value: 0x0,
1256 Size: 0x0,
1257 Version: "GLIBCXX_3.4",
1258 Library: "libstdc++.so.6",
1259 },
1260 Symbol{
1261 Name: "_ITM_deregisterTMCloneTable",
1262 Info: 0x20,
1263 Other: 0x0,
1264 HasVersion: true,
1265 VersionIndex: 0x1,
1266 Section: 0x0,
1267 Value: 0x0,
1268 Size: 0x0,
1269 },
1270 Symbol{
1271 Name: "__gmon_start__",
1272 Info: 0x20,
1273 Other: 0x0,
1274 HasVersion: true,
1275 VersionIndex: 0x1,
1276 Section: 0x0,
1277 Value: 0x0,
1278 Size: 0x0,
1279 },
1280 Symbol{
1281 Name: "_ITM_registerTMCloneTable",
1282 Info: 0x20,
1283 Other: 0x0,
1284 HasVersion: true,
1285 VersionIndex: 0x1,
1286 Section: 0x0,
1287 Value: 0x0,
1288 Size: 0x0,
1289 },
1290 Symbol{
1291 Name: "LIBTIFFXX_4.0",
1292 Info: 0x11,
1293 Other: 0x0,
1294 HasVersion: true,
1295 VersionIndex: 0x2,
1296 Section: 0xFFF1,
1297 Value: 0x0,
1298 Size: 0x0,
1299 Version: "LIBTIFFXX_4.0",
1300 Library: "",
1301 },
1302 Symbol{
1303 Name: "_Z14TIFFStreamOpenPKcPSo",
1304 Info: 0x12,
1305 Other: 0x0,
1306 HasVersion: true,
1307 VersionIndex: 0x2,
1308 Section: 0xF,
1309 Value: 0x1860,
1310 Size: 0xB8,
1311 Version: "LIBTIFFXX_4.0",
1312 Library: "",
1313 },
1314 Symbol{
1315 Name: "_Z14TIFFStreamOpenPKcPSi",
1316 Info: 0x12,
1317 Other: 0x0,
1318 HasVersion: true,
1319 VersionIndex: 0x2,
1320 Section: 0xF,
1321 Value: 0x1920,
1322 Size: 0x13,
1323 Version: "LIBTIFFXX_4.0",
1324 Library: "",
1325 },
1326 },
1327 }
1328
View as plain text