[BACK]Return to elf_syms.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / pmdb

Diff for /src/usr.bin/pmdb/Attic/elf_syms.c between version 1.2 and 1.3

version 1.2, 2002/03/15 16:41:06 version 1.3, 2002/03/15 17:49:51
Line 56 
Line 56 
         Elf_Word        esh_strsize;          Elf_Word        esh_strsize;
         Elf_Sym         *esh_symtab;          Elf_Sym         *esh_symtab;
         Elf_Word        esh_symsize;          Elf_Word        esh_symsize;
         Elf_Addr        esh_offs;  
 };  };
   
 #define ESH_TO_ST(esh) (&(esh)->esh_st)  #define ESH_TO_ST(esh) (&(esh)->esh_st)
Line 203 
Line 202 
         int nsyms, i;          int nsyms, i;
         char *symn;          char *symn;
   
 #define SYMVAL(S) (unsigned long)((S)->st_value + esh->esh_offs)  #define SYMVAL(S) (unsigned long)((S)->st_value + st->st_offs)
   
         nsyms = esh->esh_symsize / sizeof(Elf_Sym);          nsyms = esh->esh_symsize / sizeof(Elf_Sym);
   
Line 266 
Line 265 
         }          }
   
         if (s != NULL) {          if (s != NULL) {
                 *res = s->st_value + ST_TO_ESH(st)->esh_offs;                  *res = s->st_value + st->st_offs;
                 return (0);                  return (0);
         }          }
   
Line 319 
Line 318 
 #ifndef __NetBSD__  #ifndef __NetBSD__
         pid_t pid = ps->ps_pid;          pid_t pid = ps->ps_pid;
         struct elf_object_v1 eobj;          struct elf_object_v1 eobj;
         struct sym_table *st;  
         struct r_debug rdeb;          struct r_debug rdeb;
         reg addr;          reg addr;
         Elf_Dyn dyn;          Elf_Dyn dyn;
Line 330 
Line 328 
                 warnx("Can't find _DYNAMIC");                  warnx("Can't find _DYNAMIC");
                 return;                  return;
         }          }
         addr = s->st_value + ST_TO_ESH(ps->ps_sym_exe)->esh_offs;          addr = s->st_value + ps->ps_sym_exe->st_offs;
   
         do {          do {
                 if (read_from_pid(pid, addr, &dyn, sizeof(dyn)) < 0) {                  if (read_from_pid(pid, addr, &dyn, sizeof(dyn)) < 0) {
Line 392 
Line 390 
                 if (i == MAXPATHLEN)                  if (i == MAXPATHLEN)
                         continue;                          continue;
   
                 st = st_open(ps, fname);                  if (st_open(ps, fname, eobj.load_offs) == NULL)
                 if (st == NULL) {  
                         warn("symbol loading failed");                          warn("symbol loading failed");
                         continue;  
                 }  
                 ST_TO_ESH(st)->esh_offs = eobj.load_offs;  
         }          }
 #endif  #endif
 }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3