atom_object_management man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

atom_object_management(5)			     atom_object_management(5)

       atom_object_management,	BuildObj,  IsObjBuilt,	WriteObj, ReleaseObj -
       Allows an Atom tool's InstrumentAll  routine  to	 build,	 release,  and
       write objects

       #include <cmplrs/atom.inst.h>

       unsigned BuildObj(
	       Obj * ); unsigned IsObjBuilt(
	       Obj * ); void WriteObj(
	       Obj * ); void ReleaseObj(
	       Obj * );

       Atom's  object  management  routines allow an Atom tool's InstrumentAll
       routine to build, write, and release objects.

       You can use these routines only from  an	 Atom  tool's  instrumentation
       file. See atom(1) for a description of Atom.

       An  InstrumentAll routine must call the BuildObj routine before calling
       AddCallObj to add analysis routine  calls  to  the  object  and	before
       traversing  the procedures in the object.  BuildObj builds the internal
       data structures Atom uses to manipulate the object. After the Atom tool
       traverses  and  instruments  the object, the InstrumentAll routine must
       call the WriteObj routine to write out the instrumented version of  the
       object.	For example:

       unsigned InstrumentAll(int iargc, char **iargv) {
	   Obj *  obj;

	   AddCallProto("foo(int, REGV)");

	   AddCallProgram(ProgramBefore, "Startup");
	   AddCallProgram(ProgramAfter, "Finish");

	   for (obj = GetFirstObj();  obj;  obj = GetNextObj(obj))
	       if (BuildObj(obj))

		   /* instrument obj */

	   return(0); }

       The  WriteObj  routine writes the instrumented version of the specified
       object, deallocating the internal data structures  BuildObj  previously

       Note that BuildObj may return an error code. It returns a nonzero value
       (and issues an appropriate error message) if it encounters an error  in
       the executable file for the Obj0. You should propagate this error value
       back to Atom by returning 1 from InstrumentAll.

       The ReleaseObj routine deallocates the internal data structures for the
       given  object,  but  does  not  write  out the instrumented version the
       object. You should not call ReleaseObj if you have added	 any  analysis
       routine calls to the object.

       The  IsObjBuilt routine returns a nonzero value if the specified object
       has been built with BuildObj, but not  yet  written  with  WriteObj  or
       unbuilt with ReleaseObj.

       Whenever	 possible,  tools  should build and write out each object only
       once. Some tools, however, may build  and  release  an  object  several
       times,  ultimately  writing  out	 its instrumented version. This can be
       very time-consuming for a tool with very large objects.

       Similarly, tools should normally build only one object at a time.  Cer‐
       tain  tools  may	 simultaneously build several objects, instrument each
       one, and then write each out. This has advantages for tools  that  call
       ResolveNamedProc	 or  ResolveTargetProc.	 However, having more than one
       large object built at a single time will cause Atom to run  slowly  and
       to consume a large amount of memory.

       These routines return values as described above.

       Header file containing external definitions of Atom routines

       Commands: atom(1)

       Functions:  atom_application_instrumentation(5), atom_application_navi‐
       gation(5),   atom_application_query(5),	  atom_application_symbols(5),
       atom_description_file(5),  atom_instrumentation_routines(5),  AnalHeap‐
       Base(5), Thread(5), Xlate(5)

       Programmer's Guide


List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net