pvs(1) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨페이지이름
검색(S)

pvs

Name
     pvs - display the internal version  information  of  dynamic
     objects

Synopsis
     pvs [-Cdlnorsv] [-I index-expr] [-N name] file...

Description
     The pvs utility displays any  internal  version  information
     contained  within  an  ELF  file.  Commonly, these files are
     dynamic executables and shared objects, and  possibly  relo-
     catable  objects. This version information can fall into one
     of two categories:

         o    version definitions

         o    version dependencies


     Version definitions describe the interfaces  that  are  made
     available by an ELF file. Each version definition is associ-
     ated to a set of global symbols provided by the  file.  Ver-
     sion  definitions can be assigned to a file during its crea-
     tion by the link-editor using the -M option and the  associ-
     ated mapfile directives. See the Oracle Solaris 11.3 Linkers
     and Libraries         Guide for more details.


     Version dependencies describe the  binding  requirements  of
     dynamic  objects  on  the  version definitions of any shared
     object dependencies. When a dynamic object is built  with  a
     shared  object,  the  link-editor records information within
     the dynamic object indicating that the shared  object  is  a
     dependency. This dependency must be satisfied at runtime. If
     the shared object also contains  version  definitions,  then
     those  version  definitions  that  satisfy the global symbol
     requirements of the dynamic object are also recorded in  the
     dynamic object being created. At process initialization, the
     runtime linker uses any version dependencies as a  means  of
     validating the interface requirements of the dynamic objects
     used to construct the process.

Options
     The following options are supported. If neither the -d or -r
     options are specified, both are enabled.

     -C
         Demangles C++ symbol names.

     -d
         Prints version definition information.


     -I index-expr
         Qualifies the versions to examine with a  specific  ver-
         sion index or index range. For example, the version with
         index 3 in an object can be displayed using:

           % pvs -I 3 filename


         An index-expr can be a single non-negative integer value
         that  specifies a specific version, as shown in the pre-
         vious example. Alternatively, an index-expr can  consist
         of  two such values separated by a colon (:), indicating
         a range of versions. The following example displays  the
         versions 3, 4, and 5 in a file:

           % pvs -I 3:5 filename


         When specifying an index range, the second value can  be
         omitted  to  indicate  the  final  item in the file. For
         example, the following statement lists all versions from
         the tenth to the end:

           % pvs -I 10: filename


         See Matching Options for  additional  information  about
         the matching options (-I, -N).


     -l
         Prints any symbols that have been reduced from global to
         local  binding  due  to versioning. By convention, these
         symbol entries are located in the .symtab  section,  and
         fall  between  the  FILE  symbol representing the output
         file, and the FILE symbol representing the  first  input
         file  used  to  generate  the output file. These reduced
         symbol  entries  are  assigned  the  fabricated  version
         definition  _LOCAL_.  No reduced symbols will be printed
         if the file has been stripped (see strip(1)), or if  the
         symbol entry convention cannot be determined.

         Use of the -l option implicitly enables the -s option

     -n
         Normalizes version definition information.  By  default,
         all version definitions within the object are displayed.
         However, version definitions can inherit  other  version
         definitions.  Under normalization, only the head of each
         inheritance list is displayed.


     -N name
         When used with the -d option, -N prints only the  infor-
         mation  for the given version definition name and any of
         its inherited version definitions.

         When used with the -r option, -N prints only the  infor-
         mation  for the given dependency file name. It is possi-
         ble to qualify a specific version  from  the  dependency
         file  by  including the version in parenthesis following
         the file name:

           % pvs -N `dependency (version)' filename


         See Matching Options for  additional  information  about
         the matching options (-I, -N).


     -o
         Creates one-line version definition output. By  default,
         file,  version  definitions,  and  any  symbol output is
         indented to ease human inspection. This option  prefixes
         each  output  line  with the file and version definition
         name and can be more useful for analysis with  automated
         tools.


     -r
         Prints version dependency (requirements) information.


     -s
         Prints the symbols associated with each version  defini-
         tion.  Any  data  symbols  from  versions defined by the
         object are accompanied with the size, in bytes,  of  the
         data item.


     -v
         Verbose output. Indicates any weak version  definitions,
         and  any  version definition inheritance. When used with
         the -N and -d options, the inheritance of the base  ver-
         sion  definition  is  also  shown. When used with the -s
         option, the version symbol definition is also shown.

Operands
     The following operands are supported.

     file
             The ELF file about which internal  version  informa-
             tion is displayed.

Usage
  Matching Options
     The -I and -N options are collectively referred  to  as  the
     matching options. These options are used to narrow the range
     of versions to examine, by index or by name.


     Any number and type of matching option can  be  mixed  in  a
     given  invocation  of  pvs.  In  this case, pvs displays the
     superset of all versions matched  by  any  of  the  matching
     options  used. This feature allows for the selection of com-
     plex groupings of items using the most convenient  form  for
     specifying each item.

Examples
     Example 1 Displaying version definitions


     The following example displays the  version  definitions  of
     libelf.so.1:


       % pvs -d /lib/libelf.so.1
            libelf.so.1;
            SUNW_1.1



     Example 2 Creating a one-liner display


     A normalized, one-liner display,  suitable  for  creating  a
     mapfile  version control directive, can be created using the
     -n and -o options:


       % pvs -don /lib/libelf.so.1
       /lib/libelf.so.1 -  SUNW_1.1;

     Example 3 Displaying version requirements


     The following example displays the version  requirements  of
     ldd and pvs:


       % pvs -r /usr/bin/ldd /usr/bin/pvs
       /usr/bin/ldd:
            libelf.so.1 (SUNW_1.1);
            libc.so.1 (SUNW_1.1);
       /usr/bin/pvs:
            libelf.so.1 (SUNW_1.1);
            libc.so.1 (SUNW_1.1);



     Example 4 Determining a dependency symbol version


     The following example displays the shared object from  which
     the  ldd  command  expects  to find the printf() function at
     runtime, as well as the version it belongs to:


       % pvs -ors /usr/bin/ldd | grep ` printf'
       /usr/bin/ldd -  libc.so.1 (SYSVABI_1.3): printf;



     Example 5 Determine all dependency symbols from  a  specific
     version


     The -N option can be used to obtain a list of all  the  sym-
     bols from a dependency that belong to a specific version. To
     determine the  symbols  that  ldd  will  find  from  version
     SYSVABI_1.3 of libc.so.1:


       % pvs -s -N `libc.so.1 (SYSVABI_1.3)' /usr/bin/ldd
              libc.so.1 (SYSVABI_1.3):
                      _exit;
                      strstr;
                      printf;
                      __fpstart;
                      strncmp;
                      lseek;
                      strcmp;
                      getopt;
                      execl;
                      close;
                      fflush;
                      wait;
                      strerror;
                      putenv;
                      sprintf;
                      getenv;
                      open;
                      perror;
                      fork;
                      strlen;
                      geteuid;
                      access;
                      setlocale;
                      atexit;
                      fprintf;
                      exit;
                      read;
                      malloc;




     Note that the specific list  of  symbols  used  by  ldd  may
     change between Solaris releases.


     Example 6 Display base defined version by index


     By convention, the base global version defined by an  object
     has the name of the object. For example, the base version of
     pvs is named `pvs'. The base version of any object is always
     version  index  1.  Therefore,  the -I option can be used to
     display the base version of any  object  without  having  to
     specify its name:


       % pvs -v -I 1 /usr/bin/pvs
              pvs [BASE];

Exit Status
     If the requested version information is not  found,  a  non-
     zero value is returned. Otherwise, a 0 value is returned.


     Version information is determined not found when any of  the
     following is true:

         o    the -d option is specified and no  version  defini-
              tions are found.

         o    the -r option is specified and no version  require-
              ments are found.

         o    neither the -d nor -r option is  specified  and  no
              version  definitions  or  version  requirements are
              found.

Attributes
     See attributes(5) for descriptions of the  following  attri-
     butes:



     tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i)  ATTRI-
     BUTE   TYPEATTRIBUTE   VALUE  _  Availabilitydeveloper/base-
     developer-utilities

See Also
     elfdump(1),  ld(1),  ldd(1),  strip(1),  elf(3ELF),   attributes(5)


     Oracle Solaris 11.3 Linkers and Libraries         Guide
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 1.0 CSS3