NAME
dumpbind - dump the bindings found in a bindings.so.1 output
file
SYNOPSIS
dumpbind [ -pqsc ] bindings_file
AVAILABILITY
SUNWosdem
DESCRIPTION
dumpbind parses the output file created by the bindings.so.1
Link-Auditing library and displays a summary of all of the
bindings that are are recorded in it.
bindings.so.1 is a Link-Auditing library which monitors the
bindings of function calls and stores the data in a common
buffer pointed to by BT_OUTPUT. Because this library tracks
procedure calls via the la_pltenter() Link-Auditing inter-
face this library will record which functions are called as
part of the execution of a program. This differs from the
symbindrep example which performs a static analysis of all
of the bindings that are recorded in a program without actu-
ally executing it. Also note that it is safe to use the
same BT_BUFFER for multiple processes running concurrently.
This means that a whole suite of applications can be run and
the interfaces that are used as part of that suite are
recorded.
The bindings.so.1 library is enabled by the setting of the
following environment variables.
LD_AUDIT set this to the value of the bindings.so.1 Link-
Auditing library. By setting this environment
variable the gathering of bindings data is
enabled.
BT_OUTPUT set this to the name of the common output buffer
which will be maintained durring the data gather-
ing periode. If this is not set the output buffer
will default to /tmp/bindings.data.
BT_BINDFROM
a colon seperated list of libraries that are to be
traced. Only calls from these libraries will be
traced. The default is to trace all calls.
BT_BINDTO a colon seperated list of libraries that are to be
traced. Only calls to these libraries will be
traced. The default is to trace all calls.
OPTIONS
-p display output in parseable format.
-q query mutex_locks in bindings buffer and display
there current status. This is when querying a
problem with the bindings buffer.
-c clear all mutex_locks currently held in the bind-
ings buffer.
-s set master mutex_lock in bindings buffer. This
will cause any processes currently using this
bindings buffer to hang until the lock is freed.
-b print hash bucket usage statistics for the bind-
ings buffer.
EXAMPLES
Here is a sample of gathering data using the bindings.so.1
Link-Auditing library and then the examination of that data
with the dumpbind command.
polyslo 131% export BT_OUTPUT=/tmp/bindings.data
polyslo 3563% LD_AUDIT=/opt/SUNWonld/lib/bindings.so.1
polyslo 3564% export LD_AUDIT
polyslo 3565% ls /usr/ccs/bin
admin gprof.flat.blurb nrform strip.orig
ar help prof symorder
ar.orig ld prs tsort
as ld.orig prt unget
cdc lex ranlib unifdef
comb lorder regcmp val
delta m4 rmdel vc
dis make sact what
dump mcs sccs yacc
error mcs.orig sccsdiff yaccpar
get nceucform size
gprof ncform stanswer
gprof.callg.blurb nm strip
polyslo 3566% nm /usr/lib/libdl.so.1
/usr/lib/libdl.so.1:
[Index] Value Size Type Bind Other Shndx Name
[27] | 1788| 8|FUNC |GLOB |0 |7 |_dladdr
[32] | 1772| 8|FUNC |GLOB |0 |7 |_dlclose
[44] | 1796| 8|FUNC |GLOB |0 |7 |_dldump
[29] | 1780| 8|FUNC |GLOB |0 |7 |_dlerror
[26] | 1732| 8|FUNC |GLOB |0 |7 |_dlinfo
[17] | 1740| 8|FUNC |LOCL |0 |7 |_dlmap
[24] | 1748| 8|FUNC |GLOB |0 |7 |_dlmopen
[23] | 1756| 8|FUNC |GLOB |0 |7 |_dlopen
[48] | 1764| 8|FUNC |GLOB |0 |7 |_dlsym
[38] | 0| 0|OBJT |GLOB |0 |ABS |_edata
[21] | 1824| 0|OBJT |GLOB |0 |8 |_end
[42] | 1820| 0|OBJT |GLOB |0 |8 |_etext
[30] | 1804| 8|FUNC |GLOB |0 |7 |_ld_concurrency
[34] | 1812| 8|FUNC |GLOB |0 |7 |bind_guard
[47] | 1820| 4|OBJT |GLOB |0 |8 |dbg_mask
[20] | 0| 0|FILE |LOCL |0 |ABS |dl.c
[43] | 1788| 8|FUNC |WEAK |0 |7 |dladdr
[22] | 1772| 8|FUNC |WEAK |0 |7 |dlclose
[31] | 1796| 8|FUNC |WEAK |0 |7 |dldump
[45] | 1780| 8|FUNC |WEAK |0 |7 |dlerror
polyslo 136% unset LD_AUDIT
The unseting of LD_AUDIT has turned off the bindings data
gathering and the output can now safely be examined by dump-
bind.
polyslo 3567% unset LD_AUDIT
polyslo 3568% dumpbind /tmp/bindings.data
Bindings Summary Report
Library Symbol Call Count
------------------------------------------------------------------------
/usr/lib/libc.so.1 textdomain 2
/usr/lib/libelf.so.1 elf_kind 1
/usr/lib/libc.so.1 munmap 1
/usr/lib/libc.so.1 strlen 353
/usr/lib/libc.so.1 .urem 3
/usr/lib/libc.so.1 iswprint 444
/usr/lib/libc.so.1 .udiv 11
/usr/lib/libc.so.1 time 1
/usr/lib/libc.so.1 .mul 361
/usr/lib/libc.so.1 closedir 1
/usr/lib/libc.so.1 _rw_read_held 36
/usr/lib/libelf.so.1 elf_strptr 34
/usr/lib/libc.so.1 lstat64 1
/usr/lib/libc.so.1 _realbufend 1203
/usr/lib/libc.so.1 qsort 3
/usr/lib/libc.so.1 _write 64
/usr/lib/libelf.so.1 _elf32_fsize 7
/usr/lib/libc.so.1 close 1
/usr/lib/libelf.so.1 elf_begin 1
/usr/lib/libelf.so.1 elf_version 1
/usr/lib/libc.so.1 _isatty 2
/usr/lib/libc.so.1 mmap 1
/usr/lib/libelf.so.1 elf_end 1
/usr/lib/libc.so.1 printf 628
/usr/lib/libc.so.1 calloc 2
/usr/lib/libc.so.1 __flsbuf 511
/usr/lib/libc.so.1 _close 1
/usr/lib/libc.so.1 _doprnt 630
/usr/lib/libc.so.1 ___errno 3
/usr/lib/libc.so.1 .umul 23
/usr/lib/libc.so.1 _thr_main 7
/usr/lib/libc.so.1 open 1
/usr/lib/libc.so.1 _sbrk_unlocked 8
/usr/lib/libc.so.1 mutex_lock 1
/usr/lib/libc.so.1 _setbufend 2
/usr/lib/libc.so.1 sprintf 2
/usr/lib/libc.so.1 setlocale 2
/usr/lib/libelf.so.1 elf_nextscn 15
/usr/lib/ld.so.1 dlsym 2
/usr/lib/libelf.so.1 _elf_getscn 34
/usr/lib/libc.so.1 _sbrk 8
/usr/lib/libc.so.1 _open64 1
/usr/lib/libc.so.1 _mutex_lock 88
/usr/lib/libc.so.1 exit 2
/usr/lib/libc.so.1 ioctl 1
/usr/lib/libc.so.1 getenv 17
/usr/lib/libc.so.1 _mutex_held 36
------------------------------------------------------------------------
Symbol Count: 87 Call Count: 8272
polyslo 3570%
SEE ALSO
ld.so.1(1)
Linker and Libraries Guide
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |