global analysis of dynamic library dependencies
play

Global Analysis of Dynamic Library Dependencies Alva L. Couch, - PowerPoint PPT Presentation

Global Analysis of Dynamic Library Dependencies Alva L. Couch, couch@eecs.tufts.edu Yizhan Sun, ysun@eecs.tufts.edu Tufts University, Medford MA USA http://sowhat.sourceforge.net How to Create Library Dependency Problems Mix package


  1. Global Analysis of Dynamic Library Dependencies Alva L. Couch, couch@eecs.tufts.edu Yizhan Sun, ysun@eecs.tufts.edu Tufts University, Medford MA USA http://sowhat.sourceforge.net

  2. How to Create Library Dependency Problems  Mix package management and compiling.  Mix local and remote software.  Compile and use in conflicting environments.  Don’t coordinate software installers.  Let software outlast installers.  Wait!

  3. From Whence Come Library Bindings Static library Dynamic library Need libfoo.so /usr/lib/libfoo.a /usr/lib/ one.o libfoo.so.1 ld/gcc bar bar one.o one.o ld.so libfoo.so.1 Executable file Executable image

  4. What Sowhat Does /usr/bin/csh ldd, sowhat ld.so Forward Reverse dependencies dependencies All programs One program / usr/ lib/ libc.so.1

  5. Avoiding Waiting for Results Physical dependencies 554MB Host sowhat --scan “Offline” 3.3MB Indexed cache (Mysql) sowhat --report “Instant” Report of bindings

  6. Example Output library /loc/X11/lib/libXaw.so.5.0 LDD /local/bin/ghostview (libXaw.so.5.0) LDD /local/bin/xarchie (libXaw.so.5.0) kind LDD /local/bin/xcoloredit (libXaw.so.5.0) LDD /local/bin/xgopher (libXaw.so.5.0) LDD /local/bin/xrn (libXaw.so.5.0) LDD /local/bin/xxgdb (libXaw.so.5.0) program pattern

  7. Sowhat Uses  Analyze impacts of changes.  Clean up library directories.  And more…

  8. Change Analysis  Execute: sowhat –-scan --path  Make changes. sowhat –-diff –-path  Lists impacts of changes.

  9. Cleanup  Check whether a directory can be deleted: sowhat --report \ --to=/path/to/goners  Lists references to contents.

  10. What Sowhat Exposed  Programs outlived libraries by several years!  Likewise, libraries outlived programs!  Daemons depended upon remote libraries unavailable at boot!

  11. Sowhat Also Analyzes  Symbolic and hard links.  References to script handlers ( #! ).  Configuration file references.  More to come!

  12. Performance  Sample run on /local/bin, /usr/bin, /bin.  554 megabytes of executables.  2022 executable files.  3.3 megabytes of cached data.  7929 library dependencies.  1437 symlinks, 226 hardlinks, 499 scripts.  Overhead = 3.3/554 = 0.6 percent.  Index time: 13 minutes real time, 87.6 cpu- seconds (Sun E-250,/local/bin nfs mounted)

  13. Status and Availability  http://sowhat.sourceforge.net  GPL  Platform: Solaris 7-8, Mysql, Perl with DBI, DBD::Mysql.  LISA materials: http://www.eecs.tufts.edu/ ~ couch/sowhat

Recommend


More recommend