Print this page
OS-5057 libproc file_info_t file_pname too short
Reviewed by: Cody Mello <cody.mello@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
OS-3780 libproc could know about .gnu_debuglink for remote symbol tables
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libproc/common/Pcontrol.h
          +++ new/usr/src/lib/libproc/common/Pcontrol.h
↓ open down ↓ 16 lines elided ↑ open up ↑
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
  24   24   */
  25   25  /*
  26   26   * Copyright 2012 DEY Storage Systems, Inc.  All rights reserved.
  27      - * Copyright (c) 2014, Joyent, Inc. All rights reserved.
       27 + * Copyright (c) 2015, Joyent, Inc. All rights reserved.
  28   28   * Copyright (c) 2013 by Delphix. All rights reserved.
  29   29   */
  30   30  
  31   31  #ifndef _PCONTROL_H
  32   32  #define _PCONTROL_H
  33   33  
  34   34  /*
  35   35   * Implemention-specific include file for libproc process management.
  36   36   * This is not to be seen by the clients of libproc.
  37   37   */
↓ open down ↓ 47 lines elided ↑ open up ↑
  85   85          GElf_Shdr sym_strhdr;   /* string table section header */
  86   86          Elf     *sym_elf;       /* faked-up ELF handle from core file */
  87   87          void    *sym_elfmem;    /* data for faked-up ELF handle */
  88   88          uint_t  *sym_byname;    /* symbols sorted by name */
  89   89          uint_t  *sym_byaddr;    /* symbols sorted by addr */
  90   90          size_t  sym_count;      /* number of symbols in each sorted list */
  91   91  } sym_tbl_t;
  92   92  
  93   93  typedef struct file_info {      /* symbol information for a mapped file */
  94   94          plist_t file_list;      /* linked list */
  95      -        char    file_pname[PRMAPSZ];    /* name from prmap_t */
       95 +        char    file_pname[PATH_MAX];   /* name from prmap_t */
  96   96          struct map_info *file_map;      /* primary (text) mapping */
  97   97          int     file_ref;       /* references from map_info_t structures */
  98   98          int     file_fd;        /* file descriptor for the mapped file */
       99 +        int     file_dbgfile;   /* file descriptor for the debug file */
  99  100          int     file_init;      /* 0: initialization yet to be performed */
 100  101          GElf_Half file_etype;   /* ELF e_type from ehdr */
 101  102          GElf_Half file_class;   /* ELF e_ident[EI_CLASS] from ehdr */
 102  103          rd_loadobj_t *file_lo;  /* load object structure from rtld_db */
 103  104          char    *file_lname;    /* load object name from rtld_db */
 104  105          char    *file_lbase;    /* pointer to basename of file_lname */
 105  106          char    *file_rname;    /* resolved on-disk object pathname */
 106  107          char    *file_rbase;    /* pointer to basename of file_rname */
 107  108          Elf     *file_elf;      /* ELF handle so we can close */
      109 +        Elf     *file_dbgelf;   /* Debug ELF handle so we can close */
 108  110          void    *file_elfmem;   /* data for faked-up ELF handle */
 109  111          sym_tbl_t file_symtab;  /* symbol table */
 110  112          sym_tbl_t file_dynsym;  /* dynamic symbol table */
 111  113          uintptr_t file_dyn_base;        /* load address for ET_DYN files */
 112  114          uintptr_t file_plt_base;        /* base address for PLT */
 113  115          size_t  file_plt_size;  /* size of PLT region */
 114  116          uintptr_t file_jmp_rel; /* base address of PLT relocations */
 115  117          uintptr_t file_ctf_off; /* offset of CTF data in object file */
 116  118          size_t  file_ctf_size;  /* size of CTF data in object file */
 117  119          int     file_ctf_dyn;   /* does the CTF data reference the dynsym */
↓ open down ↓ 196 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX