STRIDE Build Tools: Difference between revisions

From STRIDE Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
__FORCE_TOC__
__FORCETOC__


[[Image:ProductionBuildEFS.jpg]]
[[Image:ProductionBuildEFS.jpg]]
Line 14: Line 14:
==Examples==
==Examples==


#'''Compiling multiple files'''<br><br>s2scompile –I"C:\STRIDE\inc" –DN=100 file1.h file2.h<br><br>
===Compiling multiple files===
#'''Database Binding'''<br><br>s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta<br><br>
 
#'''Intercept Module Generation'''<br><br>
    s2scompile –I"C:\STRIDE\inc" –DN=100 file1.h file2.h
##Single Intercept Module<br><br>s2sinstrument –-im_name=test test.sidb<br><br>
 
###Pre-build Instrumentation: The S2 compilation, binding and instrumentation are done before the user’s build.<br><br>s2scompile is called first, then s2sbind, and finally s2sinstrument:<br><br>s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h file2.h<br>s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta<br>s2sinstrument –-im_name=test -–mode=SDud(f1) -–mode=P(f2) test.sidb<br><br>
===Database Binding===
###In-build Prototyping with Post-build Implementation: The compilation, binding and IM prototyping (header files only generation) are done incrementally. For each component of the user’s build just a subset of SCL files are compiled, bound to a database (merged into the previously created database) and IM prototypes are generated for a set of interfaces defined in those SCL files.<br><br>s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h<br>s2sbind –-starting_suid=123 test.sidb file1.meta<br>s2sinstrument –-im_name=test –prototype=p1 -–mode=SDud(f10,f11) test.sidb<br><br><br>s2scompile –I”C:\STRIDE\inc” –DN=100 file2.h<br>s2sbind –-input_database=test.sidb test.sidb file2.meta<br>s2sinstrument –-im_name=test –prototype=p2 -–mode=P(f20,f21) test.sidb<br><br><br>s2sinstrument –-im_name=test –implement -–mode=SDud(f10,f11) -–mode=P(f20,f21) test.sidb<br><br>
 
    s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta
   
===Intercept Module Generation===
#'''Single Intercept Module'''<br><br>
##'''Pre-build Instrumentation.'''<br>The S2 compilation, binding and instrumentation are done before the user’s build.<br><br>s2scompile is called first, then s2sbind, and finally s2sinstrument:<br><br>'''s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h file2.h'''<br>'''s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta'''<br>'''s2sinstrument –-im_name=test -–mode=SDud(f1) -–mode=P(f2) test.sidb'''<br><br>
##'''In-build Prototyping with Post-build Implementation'''<br>The compilation, binding and IM prototyping (header files only generation) are done incrementally. For each component of the user’s build just a subset of SCL files are compiled, bound to a database (merged into the previously created database) and IM prototypes are generated for a set of interfaces defined in those SCL files.<br><br>'''s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h'''<br>'''s2sbind –-starting_suid=123 test.sidb file1.meta'''<br>'''s2sinstrument –-im_name=test –prototype=p1 -–mode=SDud(f10,f11) test.sidb'''<br><br><br>'''s2scompile –I”C:\STRIDE\inc” –DN=100 file2.h'''<br>'''s2sbind –-input_database=test.sidb test.sidb file2.meta'''<br>'''s2sinstrument –-im_name=test –prototype=p2 -–mode=P(f20,f21) test.sidb'''<br><br><br>'''s2sinstrument –-im_name=test –implement -–mode=SDud(f10,f11) -–mode=P(f20,f21) test.sidb'''<br><br>
#'''Multiple Intercept Modules'''<br><br>The compilation, binding and IM generation (headers and source) are done incrementally. For each component of the user’s build just a subset of SCL files are compiled, bound to a database (merged into the previously created database) and an IM generated for a set of interfaces defined in those SCL files.<br><br>This example shows how this can be accomplished. Notice how a unique name is specified for each IM when s2sinstrument is called:<br><br>'''s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h'''<br>'''s2sbind –-starting_suid=123 test.sidb file1.meta'''<br>'''s2sinstrument –-im_name=test1 -–mode=SDud(f1) test.sidb'''<br><br>'''s2scompile –I”C:\STRIDE\inc” –DN=100 file2.h'''<br>'''s2sbind –-input_database=test.sidb test.sidb file2.meta'''<br>'''s2sinstrument –-im_name=test2 -–mode=P(f2) test.sidb'''

Revision as of 01:52, 19 June 2008


File:ProductionBuildEFS.jpg

Build Tools

Command line Utilities:

  1. The STRIDE compiler (s2scompile.exe)

  2. The STRIDE database binder (s2sbind.exe)

  3. The STRIDE instrumentation generator (s2sinstrument.exe)


Examples

Compiling multiple files

   s2scompile –I"C:\STRIDE\inc" –DN=100 file1.h file2.h

Database Binding

   s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta
   

Intercept Module Generation

  1. Single Intercept Module

    1. Pre-build Instrumentation.
      The S2 compilation, binding and instrumentation are done before the user’s build.

      s2scompile is called first, then s2sbind, and finally s2sinstrument:

      s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h file2.h
      s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta
      s2sinstrument –-im_name=test -–mode=SDud(f1) -–mode=P(f2) test.sidb

    2. In-build Prototyping with Post-build Implementation
      The compilation, binding and IM prototyping (header files only generation) are done incrementally. For each component of the user’s build just a subset of SCL files are compiled, bound to a database (merged into the previously created database) and IM prototypes are generated for a set of interfaces defined in those SCL files.

      s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h
      s2sbind –-starting_suid=123 test.sidb file1.meta
      s2sinstrument –-im_name=test –prototype=p1 -–mode=SDud(f10,f11) test.sidb


      s2scompile –I”C:\STRIDE\inc” –DN=100 file2.h
      s2sbind –-input_database=test.sidb test.sidb file2.meta
      s2sinstrument –-im_name=test –prototype=p2 -–mode=P(f20,f21) test.sidb


      s2sinstrument –-im_name=test –implement -–mode=SDud(f10,f11) -–mode=P(f20,f21) test.sidb

  2. Multiple Intercept Modules

    The compilation, binding and IM generation (headers and source) are done incrementally. For each component of the user’s build just a subset of SCL files are compiled, bound to a database (merged into the previously created database) and an IM generated for a set of interfaces defined in those SCL files.

    This example shows how this can be accomplished. Notice how a unique name is specified for each IM when s2sinstrument is called:

    s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h
    s2sbind –-starting_suid=123 test.sidb file1.meta
    s2sinstrument –-im_name=test1 -–mode=SDud(f1) test.sidb

    s2scompile –I”C:\STRIDE\inc” –DN=100 file2.h
    s2sbind –-input_database=test.sidb test.sidb file2.meta
    s2sinstrument –-im_name=test2 -–mode=P(f2) test.sidb