STRIDE Build Tools: Difference between revisions

From STRIDE Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 23: Line 23:
      
      
===Intercept Module Generation===
===Intercept Module Generation===
====Single Intercept Module====
* <h4>Single Intercept Module</h4>
=====Pre-build Instrumentation.=====
** <h5>Pre-build Instrumentation.</h5>
The S2 compilation, binding and instrumentation are done before the user’s build.
The S2 compilation, binding and instrumentation are done before the user’s build.
'''s2scompile''' is called first, then s2sbind, and finally s2sinstrument:
'''s2scompile''' is called first, then s2sbind, and finally s2sinstrument:
'''s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h file2.h'''
'''s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h file2.h'''
'''s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta'''
'''s2sbind –-starting_suid=123 test.sidb file1.meta file2.meta'''
'''s2sinstrument –-im_name=test -–mode=SDud(f1) -–mode=P(f2) test.sidb'''
'''s2sinstrument –-im_name=test -–mode=SDud(f1) -–mode=P(f2) test.sidb'''


=====In-build Prototyping with Post-build Implementation=====
=====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.
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'''
:s2scompile –I”C:\STRIDE\inc” –DN=100 file1.h
'''s2sbind –-starting_suid=123 test.sidb file1.meta'''
:s2sbind –-starting_suid=123 test.sidb file1.meta
'''s2sinstrument –-im_name=test –prototype=p1 -–mode=SDud(f10,f11) test.sidb'''
:s2sinstrument –-im_name=test –prototype=p1 -–mode=SDud(f10,f11) test.sidb


'''s2scompile –I”C:\STRIDE\inc” –DN=100 file2.h'''
:s2scompile –I”C:\STRIDE\inc” –DN=100 file2.h
'''s2sbind –-input_database=test.sidb test.sidb file2.meta'''
: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 –prototype=p2 -–mode=P(f20,f21) test.sidb


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


====Multiple Intercept Modules====
====Multiple Intercept Modules====
Line 48: Line 48:
This example shows how this can be accomplished. Notice that a unique name is specified for each IM when s2sinstrument is called:
This example shows how this can be accomplished. Notice that a unique name is specified for each IM when s2sinstrument is called:


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


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

Revision as of 19:42, 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

  • Single Intercept Module

    • 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
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

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 that 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