]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gprofng: remove ElfReloc class and unused functions and declarations
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Fri, 4 Jul 2025 21:49:18 +0000 (14:49 -0700)
committerVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Mon, 7 Jul 2025 20:50:40 +0000 (13:50 -0700)
class ElfReloc is not used after we started use libbfd.
Removed ElfReloc and other unused declarations.

gprofng/ChangeLog
2025-07-03  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

* src/Disasm.cc: Remove unused functions and variables.
* src/Disasm.h: Likewise.
* src/Dwarf.cc: Likewise.
* src/DwarfLib.cc: Likewise.
* src/DwarfLib.h: Likewise.
* src/Elf.cc: Likewise.
* src/Elf.h: Likewise.
* src/Stabs.cc: Likewise.
* src/Stabs.h: Likewise.

gprofng/src/Disasm.cc
gprofng/src/Disasm.h
gprofng/src/Dwarf.cc
gprofng/src/DwarfLib.cc
gprofng/src/DwarfLib.h
gprofng/src/Elf.cc
gprofng/src/Elf.h
gprofng/src/Stabs.cc
gprofng/src/Stabs.h

index 42fb777602743072182d0cacc233418843eb5b5f..348718b53e2520cf2c191e64d374885ca715ac15 100644 (file)
@@ -50,19 +50,6 @@ struct DisContext
 
 static const int MAX_DISASM_STR     = 2048;
 
-Disasm::Disasm (char *fname)
-{
-  dwin = NULL;
-  dis_str = NULL;
-  need_swap_endian = false;
-  my_stabs = Stabs::NewStabs (fname, fname);
-  if (my_stabs == NULL)
-    return;
-  stabs = my_stabs;
-  platform = stabs->get_platform ();
-  disasm_open ();
-}
-
 Disasm::Disasm (Platform_t _platform, Stabs *_stabs)
 {
   dwin = NULL;
@@ -70,7 +57,6 @@ Disasm::Disasm (Platform_t _platform, Stabs *_stabs)
   need_swap_endian = false;
   stabs = _stabs;
   platform = _platform;
-  my_stabs = NULL;
   disasm_open ();
 }
 
@@ -263,7 +249,6 @@ Disasm::disasm_open ()
 
 Disasm::~Disasm ()
 {
-  delete my_stabs;
   delete dwin;
   delete dis_str;
 }
index 0326b5c9c11bab4fb6f894a8f691247207ee04e6..3d7159d5256c0476778e4c549c39421c1df91e1d 100644 (file)
@@ -31,7 +31,6 @@ enum Platform_t;
 class Disasm
 {
 public:
-  Disasm (char *fname);
   Disasm (Platform_t _platform, Stabs *_stabs);
   ~Disasm ();
   void remove_disasm_hndl (void *hndl);
@@ -59,7 +58,7 @@ private:
 
   disassemble_info dis_info;
   Data_window *dwin;
-  Stabs *stabs, *my_stabs;
+  Stabs *stabs;
   Platform_t platform;
   char addr_fmt[32];
   int hex_visible;
index 858910992e743b36d6592708e39f7baa6aa805ef..a54cdb18d463d6cc4e74ac15b53f06cb4f214e53 100644 (file)
@@ -378,13 +378,6 @@ Dwarf::Dwarf (Stabs *_stabs)
       return;
     }
   debug_infoSec = dwrGetSec (NTXT (".debug_info"));
-  if (debug_infoSec)
-    {
-      debug_infoSec->reloc = ElfReloc::get_elf_reloc (elf, NTXT (".rela.debug_info"), NULL);
-      debug_infoSec->reloc = ElfReloc::get_elf_reloc (elf, NTXT (".rel.debug_info"), debug_infoSec->reloc);
-      if (debug_infoSec->reloc)
-       debug_infoSec->reloc->dump ();
-    }
   debug_abbrevSec = dwrGetSec (NTXT (".debug_abbrev"));
   debug_strSec = dwrGetSec (NTXT (".debug_str"));
   debug_lineSec = dwrGetSec (NTXT (".debug_line"));
index 79be8cf58c5b86ce75dd648179b23e73776da673..9e116581b1f13d1e4478ab1164854812b93f37d9 100644 (file)
 #define NO_STMT_LIST ((uint64_t) -1)
 #define CASE_S(x)   case x: s = (char *) #x; break
 
-static char *
-gelf_st_type2str (int type)
-{
-  static char buf[128];
-  char *s;
-  switch (type)
-    {
-      CASE_S (STT_NOTYPE);
-      CASE_S (STT_OBJECT);
-      CASE_S (STT_FUNC);
-      CASE_S (STT_SECTION);
-      CASE_S (STT_FILE);
-      CASE_S (STT_COMMON);
-      CASE_S (STT_TLS);
-      //    CASE_S(STT_NUM);
-      CASE_S (STT_LOPROC);
-      CASE_S (STT_HIPROC);
-    default: s = NTXT ("???");
-      break;
-    }
-  snprintf (buf, sizeof (buf), NTXT ("%s(%d)"), s, type);
-  buf[sizeof (buf) - 1] = 0;
-  return buf;
-}
-
 static char *
 special_opcode2str (int opcode)
 {
@@ -167,233 +142,6 @@ get_string (DwrSec *sec, uint64_t off)
 }
 
   
-//////////////////////////////////////////////////////////
-//  class ElfReloc
-
-ElfReloc::ElfReloc (Elf *_elf)
-{
-  elf = _elf;
-  reloc = NULL;
-  cur_reloc_ind = 0;
-}
-
-ElfReloc::~ElfReloc ()
-{
-  if (reloc)
-    {
-      reloc->destroy ();
-      delete reloc;
-    }
-}
-
-void
-ElfReloc::dump_rela_debug_sec (int sec)
-{
-  if (!DUMP_RELA_SEC)
-    return;
-  Elf_Internal_Shdr *shdr = elf->get_shdr (sec);
-  if (shdr == NULL)
-    return;
-
-  Elf_Data *data = elf->elf_getdata (sec);
-  if (data == NULL)
-    return;
-
-  uint64_t ScnSize = data->d_size;
-  uint64_t EntSize = shdr->sh_entsize;
-  if (ScnSize == 0 || EntSize == 0)
-    return;
-
-  Elf_Internal_Rela rela;
-  int n, cnt = (int) (ScnSize / EntSize);
-
-  char *sec_name = elf->get_sec_name (sec);
-  if (sec_name == NULL) // It can not be, but let's check
-    return;
-  Dprintf (DUMP_RELA_SEC,
-          "======= DwarfLib::dump_rela_debug_sec  Section:%2d  '%s'\n",
-          sec, sec_name);
-  Dprintf (DUMP_RELA_SEC,
-          " N |addend|   offset   |       r_info      |    stt_type   |\n");
-  for (n = 0; n < cnt; n++)
-    {
-      if (strncmp (sec_name, NTXT (".rela."), 6) == 0)
-       elf->elf_getrela (data, n, &rela);
-      else
-       {
-         elf->elf_getrel (data, n, &rela);
-         rela.r_addend = 0;
-       }
-      int ndx = (int) GELF_R_SYM (rela.r_info);
-      Elf_Internal_Shdr *secHdr;
-      Elf_Internal_Sym sym;
-      asymbol *asym;
-      asym = elf->elf_getsym (ndx, &sym, false);
-      Dprintf (DUMP_RELA_SEC, NTXT ("%3d:%5d |%11lld |0x%016llx | %-15s|"),
-              n, (int) rela.r_addend,
-              (long long) rela.r_offset, (long long) rela.r_info,
-              gelf_st_type2str ((int) GELF_ST_TYPE (sym.st_info)));
-      switch (GELF_ST_TYPE (sym.st_info))
-       {
-       case STT_FUNC:
-       case STT_OBJECT:
-       case STT_NOTYPE:
-         Dprintf (DUMP_RELA_SEC, NTXT (" img_offset=0x%llx"),
-                  (long long) (bfd_asymbol_value (asym)));
-         Dprintf (DUMP_RELA_SEC, NTXT ("  %s"),  bfd_asymbol_name (asym));
-         break;
-       case STT_SECTION:
-         secHdr = elf->get_shdr (sym.st_shndx);
-         if (secHdr)
-           {
-             Dprintf (DUMP_RELA_SEC, NTXT ("       value=0x%016llx (%lld)"),
-                      (long long) (secHdr->sh_offset + rela.r_addend),
-                      (long long) (secHdr->sh_offset + rela.r_addend));
-           }
-         break;
-       default:
-         break;
-       }
-      Dprintf (DUMP_RELA_SEC, NTXT ("\n"));
-    }
-  Dprintf (DUMP_RELA_SEC, NTXT ("\n"));
-}
-
-void
-ElfReloc::dump ()
-{
-  if (!DUMP_ELF_RELOC || (reloc == NULL) || (reloc->size () == 0))
-    return;
-  Dprintf (DUMP_ELF_RELOC, NTXT ("======= ElfReloc::dump\n"));
-  Dprintf (DUMP_ELF_RELOC, NTXT (" N |   offset   |    value   | STT_TYPE\n"));
-  for (int i = 0; i < reloc->size (); i++)
-    {
-      Sreloc *srlc = reloc->fetch (i);
-      Dprintf (DUMP_ELF_RELOC, NTXT ("%3d:%11lld |%11lld | %s\n"),
-              i, (long long) srlc->offset, (long long) srlc->value,
-              gelf_st_type2str (srlc->stt_type));
-    }
-  Dprintf (DUMP_ELF_RELOC, NTXT ("\n"));
-}
-
-static int
-DwrRelocOffsetCmp (const void *a, const void *b)
-{
-  ElfReloc::Sreloc *item1 = *((ElfReloc::Sreloc **) a);
-  ElfReloc::Sreloc *item2 = *((ElfReloc::Sreloc **) b);
-  return item1->offset < item2->offset ? -1 :
-        item1->offset == item2->offset ? 0 : 1;
-}
-
-ElfReloc *
-ElfReloc::get_elf_reloc (Elf *elfp, char *sec_name, ElfReloc *rlc)
-{
-  int et = elfp->elf_getehdr ()->e_type;
-  if (et == ET_EXEC || et == ET_DYN)
-    return rlc;
-  int sec = elfp->elf_get_sec_num (sec_name);
-  if (sec == 0)
-    return rlc;
-  Elf_Internal_Shdr *shdr = elfp->get_shdr (sec);
-  if (shdr == NULL || shdr->sh_entsize == 0)
-    return rlc;
-
-  Elf_Data *data = elfp->elf_getdata (sec);
-  if (data == NULL || data->d_size == 0)
-    return rlc;
-
-  int cnt = (int) (data->d_size / shdr->sh_entsize);
-  Vector<Sreloc *> *vp = NULL;
-
-  for (int n = 0; n < cnt; n++)
-    {
-      Elf_Internal_Shdr *secHdr;
-      Sreloc *srlc;
-      Elf_Internal_Rela rela;
-      if (strncmp (sec_name, NTXT (".rela."), 6) == 0)
-       elfp->elf_getrela (data, n, &rela);
-      else
-       {
-         elfp->elf_getrel (data, n, &rela);
-         rela.r_addend = 0;
-       }
-      int ndx = (int) GELF_R_SYM (rela.r_info);
-      Elf_Internal_Sym sym;
-      elfp->elf_getsym (ndx, &sym, false);
-
-      srlc = new Sreloc;
-      srlc->offset = rela.r_offset;
-      srlc->value = 0;
-      srlc->stt_type = (int) GELF_ST_TYPE (sym.st_info);
-      switch (GELF_ST_TYPE (sym.st_info))
-       {
-       case STT_FUNC:
-         secHdr = elfp->get_shdr (sym.st_shndx);
-         if (secHdr)
-           srlc->value = secHdr->sh_offset + sym.st_value;
-         break;
-       case STT_OBJECT:
-       case STT_NOTYPE:
-         secHdr = elfp->get_shdr (shdr->sh_info);
-         if (secHdr)
-           {
-             srlc->offset = rela.r_info;
-             srlc->value = secHdr->sh_offset + rela.r_addend;
-           }
-         break;
-       case STT_SECTION:
-         secHdr = elfp->get_shdr (sym.st_shndx);
-         if (secHdr)
-           srlc->value = rela.r_addend;
-         break;
-       default:
-         srlc->value = 0;
-         break;
-       }
-      if (rlc == NULL)
-       {
-         rlc = new ElfReloc (elfp);
-         vp = rlc->reloc;
-       }
-      if (vp == NULL)
-       {
-         vp = new Vector<Sreloc*>;
-         rlc->reloc = vp;
-       }
-      vp->append (srlc);
-    }
-  if (vp)
-    vp->sort (DwrRelocOffsetCmp);
-  if (rlc)
-    {
-      rlc->dump_rela_debug_sec (sec);
-      rlc->dump ();
-    }
-  return rlc;
-}
-
-long long
-ElfReloc::get_reloc_addr (long long offset)
-{
-  Sreloc *srlc;
-  int i = cur_reloc_ind - 1;
-  if (i >= 0 && i < reloc->size ())
-    {
-      srlc = reloc->fetch (i);
-      if (srlc->offset > offset)  // need to reset
-       cur_reloc_ind = 0;
-    }
-  for (; cur_reloc_ind < reloc->size (); cur_reloc_ind++)
-    {
-      srlc = reloc->fetch (cur_reloc_ind);
-      if (srlc->offset == offset)
-       return srlc->value;
-      if (srlc->offset > offset)
-       return 0;
-    }
-  return 0;
-}
-
 DwrLocation *
 DwrCU::dwr_get_location (DwrSec *secp, DwrLocation *lp)
 {
@@ -1058,34 +806,28 @@ Dwr_Tag::dump ()
 
 DwrSec::DwrSec (unsigned char *_data, uint64_t _size, bool _need_swap_endian, bool _addr32)
 {
-  isCopy = false;
   data = _data;
   sizeSec = _size;
   size = (data ? _size : 0);
   offset = 0;
   fmt64 = false;
-  reloc = NULL;
   need_swap_endian = _need_swap_endian;
   addr32 = _addr32;
 }
 
 DwrSec::DwrSec (DwrSec *secp, uint64_t _offset)
 {
-  isCopy = true;
   data = secp->data;
   sizeSec = secp->sizeSec;
   size = secp->size;
   offset = _offset;
   fmt64 = secp->fmt64;
-  reloc = secp->reloc;
   need_swap_endian = secp->need_swap_endian;
   addr32 = secp->addr32;
 }
 
 DwrSec::~DwrSec ()
 {
-  if (!isCopy)
-    delete reloc;
 }
 
 bool
@@ -1213,17 +955,13 @@ DwrSec::GetLong ()
 uint64_t
 DwrSec::GetADDR_32 ()
 {
-  uint64_t res = reloc ? reloc->get_reloc_addr (offset) : 0;
-  res += Get_32 ();
-  return res;
+  return Get_32 ();
 }
 
 uint64_t
 DwrSec::GetADDR_64 ()
 {
-  uint64_t res = reloc ? reloc->get_reloc_addr (offset) : 0;
-  res += Get_64 ();
-  return res;
+  return Get_64 ();
 }
 
 uint64_t
index 06b19b84213444659ce3e2c0779f431c3e7b94e8..49ecb41ff6482d6b1fd789a00e629266d11da11f 100644 (file)
@@ -23,7 +23,6 @@
 
 #include "dwarf2.h"
 
-class ElfReloc;
 class Dwr_type;
 class Function;
 class Range;
@@ -76,7 +75,6 @@ public:
     return (uint32_t) GetULEB128 ();
   }
 
-  ElfReloc *reloc;
   uint64_t sizeSec;
   uint64_t size;
   uint64_t offset;
@@ -87,7 +85,6 @@ public:
   int segment_selector_size; // DWARF 5
 
 private:
-  bool isCopy;
   unsigned char *data;
   bool bounds_violation (uint64_t sz);
 };
index f0fd1215a0499c89124597cc257e4618d11e4e33..b90ad29dc5b96fa99d0afcbcc0196e76282d9676 100644 (file)
@@ -28,6 +28,7 @@
 #include "Map.h"
 #include "StringBuilder.h"
 #include "DbeFile.h"
+#include "DbeSession.h"
 
 typedef uint32_t Elf32_Word;
 typedef uint32_t Elf64_Word;
@@ -83,56 +84,6 @@ struct S_Elf64_Dyn
   } d_un;
 };
 
-
-// Symbol table
-typedef struct
-{
-  Elf32_Word st_name;
-  Elf32_Addr st_value;
-  Elf32_Word st_size;
-  unsigned char st_info;    /* bind, type: ELF_32_ST_... */
-  unsigned char st_other;
-  Elf32_Half st_shndx;      /* SHN_... */
-} Elf32_Sym;
-
-typedef struct
-{
-  Elf64_Word st_name;
-  unsigned char st_info;    /* bind, type: ELF_64_ST_... */
-  unsigned char st_other;
-  Elf64_Half st_shndx;      /* SHN_... */
-  Elf64_Addr st_value;
-  Elf64_Xword st_size;
-} Elf64_Sym;
-
-
-// Relocation
-typedef struct
-{
-  Elf32_Addr r_offset;
-  Elf32_Word r_info;        /* sym, type: ELF32_R_... */
-} Elf32_Rel;
-
-typedef struct
-{
-  Elf32_Addr r_offset;
-  Elf32_Word r_info;        /* sym, type: ELF32_R_... */
-  Elf32_Sword r_addend;
-} Elf32_Rela;
-
-typedef struct
-{
-  Elf64_Addr r_offset;
-  Elf64_Xword r_info;       /* sym, type: ELF64_R_... */
-} Elf64_Rel;
-
-typedef struct
-{
-  Elf64_Addr r_offset;
-  Elf64_Xword r_info;       /* sym, type: ELF64_R_... */
-  Elf64_Sxword r_addend;
-} Elf64_Rela;
-
 int Elf::bfd_status = -1;
 
 void
@@ -196,23 +147,13 @@ Elf::Elf (char *filename) : DbeMessages (), Data_window (filename)
     }
   status = ELF_ERR_NONE;
 
-#if ARCH(SPARC)
-  need_swap_endian = is_Intel ();
-#else
-  need_swap_endian = !is_Intel ();
-#endif
-
+  need_swap_endian = DbeSession::is_bigendian () != bfd_big_endian (abfd);
   analyzerInfo = 0;
-  SUNW_ldynsym = 0;
-  gnuLink = 0;
   stab = 0;
-  stabStr = 0;
   stabIndex = 0;
   stabIndexStr = 0;
   stabExcl = 0;
   stabExclStr = 0;
-  symtab = 0;
-  dynsym = 0;
   info = 0;
   plt = 0;
   dwarf = false;
@@ -234,20 +175,12 @@ Elf::Elf (char *filename) : DbeMessages (), Data_window (filename)
        stabExcl = sec;
       else if (streq (name, NTXT (".stab.exclstr")))
        stabExclStr = sec;
-      else if (streq (name, NTXT (".gnu_debuglink")))
-       gnuLink = sec;
       else if (streq (name, NTXT (".__analyzer_info")))
        analyzerInfo = sec;
       else if (streq (name, NTXT (".info")))
        info = true;
       else if (streq (name, NTXT (".plt")))
        plt = sec;
-      else if (streq (name, NTXT (".SUNW_ldynsym")))
-       SUNW_ldynsym = sec;
-      else if (streq (name, NTXT (".dynsym")))
-       dynsym = sec;
-      else if (streq (name, NTXT (".symtab")))
-       symtab = sec;
       else if (strncmp (name, NTXT (".debug"), 6) == 0)
        dwarf = true;
     }
@@ -572,50 +505,6 @@ Elf::elf_getsym (unsigned int ndx, Elf_Internal_Sym *dst, bool is_dynamic)
   return asym;
 }
 
-Elf_Internal_Rela *
-Elf::elf_getrel (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst)
-{
-  if (dst == NULL || edta == NULL || edta->d_buf == NULL)
-    return NULL;
-  if (elf_getclass () == ELFCLASS32)
-    {
-      Elf32_Rel *rel = ((Elf32_Rel *) edta->d_buf) + ndx;
-      dst->r_offset = decode (rel->r_offset);
-      dst->r_info = ELF64_R_INFO (ELF32_R_SYM (decode (rel->r_info)),
-                                 ELF32_R_TYPE (decode (rel->r_info)));
-    }
-  else
-    {
-      Elf64_Rel *rel = ((Elf64_Rel *) edta->d_buf) + ndx;
-      dst->r_offset = decode (rel->r_offset);
-      dst->r_info = decode (rel->r_info);
-    }
-  return dst;
-}
-
-Elf_Internal_Rela *
-Elf::elf_getrela (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst)
-{
-  if (dst == NULL || edta == NULL || edta->d_buf == NULL)
-    return NULL;
-  if (elf_getclass () == ELFCLASS32)
-    {
-      Elf32_Rela *rela = ((Elf32_Rela *) edta->d_buf) + ndx;
-      dst->r_offset = decode (rela->r_offset);
-      dst->r_addend = decode (rela->r_addend);
-      dst->r_info = ELF64_R_INFO (ELF32_R_SYM (decode (rela->r_info)),
-                                 ELF32_R_TYPE (decode (rela->r_info)));
-    }
-  else
-    {
-      Elf64_Rela *rela = ((Elf64_Rela *) edta->d_buf) + ndx;
-      dst->r_offset = decode (rela->r_offset);
-      dst->r_addend = decode (rela->r_addend);
-      dst->r_info = decode (rela->r_info);
-    }
-  return dst;
-}
-
 Elf64_Ancillary *
 Elf::elf_getancillary (Elf_Data *edta, unsigned int ndx, Elf64_Ancillary *dst)
 {
index b324c394d16dd81afa97318e59b3d6c745331129..66676702a858982d9002517202b31299a4a9b445 100644 (file)
@@ -35,10 +35,8 @@ class DbeFile;
 template <class ITEM> class Vector;
 template <typename Key_t, typename Value_t> class Map;
 
-#define GELF_R_SYM(info)    ((info)>>32)
 #define GELF_ST_TYPE(info)  ((info) & 0xf)
 #define GELF_ST_BIND(info)  ((info) >> 4)
-#define GELF_R_TYPE(info)   ((((uint64_t)(info))<<56)>>56)
 
 #define        SHF_SUNW_ABSENT         0x00200000      /* section data not present */
 #define        SEC_DECOMPRESSED        0x00400000      /* bfd allocated this memory */
@@ -94,8 +92,6 @@ public:
   char *elf_strptr (unsigned int sec, uint64_t off);
   long elf_getSymCount (bool is_dynamic);
   asymbol *elf_getsym (unsigned int ndx, Elf_Internal_Sym *dst, bool is_dynamic);
-  Elf_Internal_Rela *elf_getrel (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst);
-  Elf_Internal_Rela *elf_getrela (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst);
   Elf64_Ancillary *elf_getancillary (Elf_Data *edta, unsigned int ndx, Elf64_Ancillary *dst);
   Elf *find_ancillary_files (char *lo_name); // read the .gnu_debuglink and .SUNW_ancillary seections
   const char *get_funcname_in_plt (uint64_t pc);
@@ -132,7 +128,7 @@ public:
   Elf *gnu_debug_file;
   DbeFile *dbeFile;
   Map<const char*, Symbol*> *elfSymbols;
-  unsigned int gnuLink, analyzerInfo, SUNW_ldynsym, stab, stabStr, symtab, dynsym;
+  unsigned int analyzerInfo, stab, stabStr;
   unsigned int stabIndex, stabIndexStr, stabExcl, stabExclStr, info, plt;
   bool dwarf;
 
@@ -154,28 +150,4 @@ protected:
   Vector <asymbol *> *synthsym;
 };
 
-
-class ElfReloc
-{
-public:
-  struct Sreloc
-  {
-    long long offset;
-    long long value;
-    int stt_type;
-  };
-
-  static ElfReloc *get_elf_reloc (Elf *elf, char *sec_name, ElfReloc *rlc);
-  ElfReloc (Elf *_elf);
-  ~ElfReloc ();
-  long long get_reloc_addr (long long offset);
-  void dump ();
-  void dump_rela_debug_sec (int sec);
-
-private:
-  Elf *elf;
-  Vector<Sreloc *> *reloc;
-  int cur_reloc_ind;
-};
-
 #endif
index c6d6473460e4529fd634b7f656a7409ffaa327c6..53f7ef1c3df5f696e54634a5cc50c3743771bf88 100644 (file)
@@ -163,18 +163,6 @@ Stabs::removeDupSyms ()
   SymLst->truncate (last);
 }
 
-Stabs *
-Stabs::NewStabs (char *_path, char *lo_name)
-{
-  Stabs *stabs = new Stabs (_path, lo_name);
-  if (stabs->status != Stabs::DBGD_ERR_NONE)
-    {
-      delete stabs;
-      return NULL;
-    }
-  return stabs;
-}
-
 Stabs::Stabs (char *_path, char *_lo_name)
 {
   path = dbe_strdup (_path);
@@ -2131,57 +2119,6 @@ Stabs::append_Function (Module *module, char *fname)
   return func;
 }
 
-Function *
-Stabs::append_Function (Module *module, char *linkerName, uint64_t pc)
-{
-  Dprintf (DEBUG_STABS, NTXT ("Stabs::append_Function: module=%s linkerName=%s pc=0x%llx\n"),
-          STR (module->get_name ()), STR (linkerName), (unsigned long long) pc);
-  long i;
-  Symbol *sitem = NULL, *sp;
-  Function *func;
-  sp = new Symbol;
-  if (pc)
-    {
-      sp->value = pc;
-      i = SymLst->bisearch (0, -1, &sp, SymFindCmp);
-      if (i != -1)
-       sitem = SymLst->fetch (i);
-    }
-
-  if (!sitem && linkerName)
-    {
-      if (SymLstByName == NULL)
-       {
-         SymLstByName = SymLst->copy ();
-         SymLstByName->sort (SymNameCmp);
-       }
-      sp->name = linkerName;
-      i = SymLstByName->bisearch (0, -1, &sp, SymNameCmp);
-      sp->name = NULL;
-      if (i != -1)
-       sitem = SymLstByName->fetch (i);
-    }
-  delete sp;
-
-  if (!sitem)
-    return NULL;
-  if (sitem->alias)
-    sitem = sitem->alias;
-  if (sitem->func)
-    return sitem->func;
-
-  sitem->func = func = dbeSession->createFunction ();
-  func->img_fname = path;
-  func->img_offset = sitem->img_offset;
-  func->save_addr = sitem->save;
-  func->size = sitem->size;
-  func->module = module;
-  func->set_name (sitem->name); //XXXX ?? Now call it to set obj->name
-  module->functions->append (func);
-  module->loadobject->functions->append (func);
-  return func;
-}// Stabs::append_Function
-
 Dwarf *
 Stabs::openDwarf ()
 {
index c8da278d0aca2ec2f609221ced392deae40f575b..f0e162b8fa61ac93eea909cc1cf1e55c2e2b9d0a 100644 (file)
@@ -76,7 +76,6 @@ class Stabs {
        DBGD_ERR_CHK_SUM
     };
 
-    static Stabs *NewStabs(char *_path, char *lo_name);
     Stabs(char *_path, char *_lo_name);
     ~Stabs();
 
@@ -100,7 +99,6 @@ class Stabs {
     static Function *find_func(char *fname, Vector<Function*> *functions, bool fortran, bool inner_names=false);
     Module     *append_Module(LoadObject *lo, char *name, int lastMod = 0);
     Function   *append_Function(Module *module, char *fname);
-    Function   *append_Function(Module *module, char *linkerName, uint64_t pc);
     Function   *map_PC_to_func(uint64_t pc, uint64_t &low_pc, Vector<Function*> *functions);
     char               *path;                  // path to the object file
     char                *lo_name;       // User name of load object