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