Lines Matching refs:FDR
269 map FDR names to indices in the output file, and to map local
275 /* FDR index or string table offset. */
354 /* The FDR hash table. */
375 struct shuffle *fdr;
461 /* Initialize the FDR hash table. This returns a handle which is then
494 ainfo->fdr = NULL;
567 void (* const swap_fdr_out) (bfd *, const FDR *, void *)
620 /* Find all the debugging information based on the FDR's. We need
622 if (input_debug->fdr != (FDR *) NULL)
624 fdr_start = (bfd_byte *) input_debug->fdr;
625 fdr_add = sizeof (FDR);
650 /* Look through the FDR's to see which ones we are going to include
651 in the final output. We do not want duplicate FDR information
653 When we find an FDR with no line information which can be merged,
655 once. We keep a table mapping FDR numbers to the final number
662 FDR fdr;
664 if (input_debug->fdr != (FDR *) NULL)
665 fdr = *(FDR *) fdr_ptr;
667 (*input_swap->swap_fdr_in) (input_bfd, fdr_ptr, &fdr);
669 /* See if this FDR can be merged with an existing one. */
670 if (fdr.cbLine == 0 && fdr.rss != -1 && fdr.fMerge)
683 name = input_debug->ss + fdr.issBase + fdr.rss;
688 sprintf (lookup, "%s %lx %lx", name, (unsigned long) fdr.csym,
689 (unsigned long) fdr.caux);
701 /* Don't copy this FDR. */
737 /* Look through the FDR's and copy over all associated debugging
746 if (!add_memory_shuffle (ainfo, &ainfo->fdr, &ainfo->fdr_end, fdr_out, sz))
752 FDR fdr;
760 /* We are not copying this FDR. */
764 if (input_debug->fdr != (FDR *) NULL)
765 fdr = *(FDR *) fdr_ptr;
767 (*input_swap->swap_fdr_in) (input_bfd, fdr_ptr, &fdr);
769 /* FIXME: It is conceivable that this FDR points to the .init or
772 fdr.adr += section_adjust[scText];
777 sz = fdr.csym * external_sym_size;
788 + fdr.isymBase * input_swap->external_sym_size);
789 lraw_end = lraw_src + fdr.csym * input_swap->external_sym_size;
822 prevent us from easily merging different FDR's. */
828 if (! fgotfilename && internal_sym.iss == fdr.rss)
834 name = input_debug->ss + fdr.issBase + internal_sym.iss;
860 fdr.rss = internal_sym.iss;
869 fdr.isymBase = output_symhdr->isymMax;
870 output_symhdr->isymMax += fdr.csym;
878 if (fdr.cbLine > 0)
880 file_ptr pos = input_symhdr->cbLineOffset + fdr.cbLineOffset;
882 input_bfd, pos, (unsigned long) fdr.cbLine))
884 fdr.ilineBase = output_symhdr->ilineMax;
885 fdr.cbLineOffset = output_symhdr->cbLine;
886 output_symhdr->ilineMax += fdr.cline;
887 output_symhdr->cbLine += fdr.cbLine;
889 if (fdr.caux > 0)
892 + fdr.iauxBase * sizeof (union aux_ext));
895 fdr.caux * sizeof (union aux_ext)))
897 fdr.iauxBase = output_symhdr->iauxMax;
898 output_symhdr->iauxMax += fdr.caux;
904 strings attached to each FDR. We need to set cbSs
907 fdr.issBase = 0;
908 fdr.cbSs = output_symhdr->issMax;
910 else if (fdr.cbSs > 0)
912 file_ptr pos = input_symhdr->cbSsOffset + fdr.issBase;
914 input_bfd, pos, (unsigned long) fdr.cbSs))
916 fdr.issBase = output_symhdr->issMax;
917 output_symhdr->issMax += fdr.cbSs;
927 if (fdr.cpd > 0)
930 + fdr.ipdFirst * external_pdr_size);
931 unsigned long size = fdr.cpd * external_pdr_size;
937 if (fdr.copt > 0)
940 + fdr.ioptBase * external_opt_size);
941 unsigned long size = fdr.copt * external_opt_size;
960 + fdr.ipdFirst * insz);
961 end = in + fdr.cpd * insz;
962 sz = fdr.cpd * outsz;
984 + fdr.ioptBase * insz);
985 end = in + fdr.copt * insz;
986 sz = fdr.copt * outsz;
1005 fdr.ipdFirst = output_symhdr->ipdMax;
1006 output_symhdr->ipdMax += fdr.cpd;
1007 fdr.ioptBase = output_symhdr->ioptMax;
1008 output_symhdr->ioptMax += fdr.copt;
1010 if (fdr.crfd <= 0)
1012 /* Point this FDR at the table of RFD's we created. */
1013 fdr.rfdBase = newrfdbase;
1014 fdr.crfd = input_symhdr->ifdMax;
1018 /* Point this FDR at the remapped RFD's. */
1019 fdr.rfdBase += oldrfdbase;
1022 (*swap_fdr_out) (output_bfd, &fdr, fdr_out);
1031 Return the offset from the fdr string base. */
1037 FDR *fdr,
1053 fdr->cbSs += len + 1;
1093 FDR fdr;
1102 memset (&fdr, 0, sizeof fdr);
1106 fdr.adr = sec->output_section->vma + sec->output_offset;
1110 fdr.adr = 0;
1113 fdr.issBase = output_symhdr->issMax;
1114 fdr.cbSs = 0;
1115 fdr.rss = ecoff_add_string (ainfo, info, output_debug, &fdr,
1117 if (fdr.rss == -1)
1119 fdr.isymBase = output_symhdr->isymMax;
1135 fdr.csym = 0;
1144 internal_sym.iss = ecoff_add_string (ainfo, info, output_debug, &fdr,
1171 ++fdr.csym;
1177 /* Leave everything else in the FDR zeroed out. This will cause
1188 (*output_swap->swap_fdr_out) (output_bfd, &fdr, external_fdr);
1189 add_memory_shuffle (ainfo, &ainfo->fdr, &ainfo->fdr_end,
1677 if (! ecoff_write_shuffle (abfd, swap, ainfo->fdr, space)
1703 /* Compare FDR entries. This is called via qsort. */
1720 /* Each file descriptor (FDR) has a memory address, to simplify
1721 looking up an FDR by address, we build a table covering all FDRs
1733 FDR *fdr_ptr;
1734 FDR *fdr_start;
1735 FDR *fdr_end;
1740 fdr_start = debug_info->fdr;
1785 address of the first PDR is the address of the FDR, which will
1788 addresses do not equal the FDR vma, but they (the PDR address)
1792 procedure relative to the beginning of file FDR. */
1801 tab->fdr = fdr_ptr;
1815 /* Return index of first FDR that covers to OFFSET. */
1874 FDR *fdr_ptr;
1880 /* Build FDR table (sorted by object file's base-address) if we
1888 /* Find first FDR for address OFFSET. */
1891 return FALSE; /* no FDR, no fun... */
1897 associated with FDR x and *not* with FDR y. Erg!!
1902 FDR [2]: (main.C): First instruction: 0x12000207c <x>
1905 FDR [1]: (-1): First instruction: 0x1200020e8 <y>
1907 FDR [6]: (-1): First instruction: 0x1200026f0 <z>
1915 FDR; see FDR1 and PDR3. Gross!
1918 describe actual files (fdr.rss == -1), and 2) contain only compiler
1920 the FDR table in 'mk_fdrtab'. But, besides not knowing for certain
1925 procedures with vma's higher than the last FDR in the fdr table will be
1926 associated with a PDR from this FDR, specifically the PDR with the
1932 PDR would have a pointer to its FDR so file information could still be
1933 obtained. A FDR table could still be constructed if necessary -- since
1937 There is still at least one remaining issue. Sometimes a FDR can have a
1938 bogus name, but contain PDRs that should belong to another FDR with a
1941 FDR [3]: 0000000120001b50 (/home/.../Array.H~alt~deccxx_5E5A62AD)
1948 FDR [4]: 0000000120001b50 (/home/.../Array.H)
1955 is that there is a 'fake' FDR (with PDRs) for each differently typed set
1957 excluded from the FDR table in 'mk_fdrtab' because it contains no PDRs.
1962 fdr_ptr = tab[i].fdr;
1986 FDR *best_fdr;
1992 /* This file uses ECOFF debugging information. Each FDR has a
1993 list of procedure descriptors (PDR). The address in the FDR
2021 FDR/PDR). Similarly, PDRs are sometimes out of order
2030 that is sorted by the base-address of the object-file the FDR
2035 lookup(addr) guarantees to return the first FDR that applies
2041 Once, the right FDR and PDR are located, we simply walk
2052 Because FDR's without any symbols are assumed to be non-stabs,
2058 /* Search FDR list starting at tab[i] for the PDR that best matches
2059 OFFSET. Normally, the FDR list is only one entry long. */
2064 because we iterate over every FDR rather than just ones
2070 fdr_ptr = tab[i].fdr;