SBFOCUS(1)

NAME
sbfocus - generate SourceBrowser data file for focus units

SYNOPSIS
sbfocus [ -x exec_name ]
sbfocus [ -r o_name ]
sbfocus [ -a ar_name ]
sbfocus [ -help ]
sbfocus [ -version ]
All but the last two invocations accept as input a list of lines, each having the name of one bd file.

AVAILABILITY
Available in release SW3.0 and later.

DESCRIPTION

Sbfocus is a program that generates a .bd file for the SourceBrowser database describing a new focus. Sbfocus is invoked by ld when it detects that the objects that it is manipulating have associated .bd files. Ar was supposed to do similar processing but, due to a problem with source versions, this feature never made it into the Solaris 2.x source tree. The remainder of this man page describes the ld behavior.

Ld examines the objects that it is handling to see whether they contain an ELF section with title .stab.sbfocus; if so, its associated string section ( .stab.sbfocusstr) contains pairs of strings separated by empty strings, where each pair has the name of a source file and the name of its associated .bd file; this invariant is initially generated by the conformant compilers and it is later kept by LD itself (with help from sbfocus). LD then tries to find an sbfocus executable in its PATH environment vairable. If it finds one, it will fork it passing as arguments either "-r object_name" or "-x executable_name", depending on whether the linker is concatenating "o"s or creating an executable image. LD will then pass to the standard input of this child process a succession of lines, each one being the name of a .bd file found while scanning the loading objects.

The result of the execution of sbfocus is a new bd, with name based on the object name or executable name (modified by the hash of its contents, as usual). This .bd name represents a focus that can be used by the SourceBrowser programs to perform "focus" operations.

OPTIONS

-help
    provides a list of allowable options.
    -version lists the version of sbfocus.
    -a should be used to build an archived library (never invoked).
    -r should be used to concatenate object files (working option).
    -s should be used to build a shared library (deprecated). -x is used to build an executable (working option).

EXAMPLE

The invocation below will create a .bd that describes a focus unit of type executable, name Deriveda.out, and containing the two .bd files foo.c.0yOvzX.bd and main.c.0yOyRm.bd. The invocation could have been the result of a link editing command like cc -o Derived/a.out foo.o main.o.
sbfocus -x Derived/a.out
foo.c.0yOvzX.bd
main.c.0yOyRm.bd

FILES

SEE ALSO
sbcleanup(1), sbquery(1), sbrowser(1), sbfocus(1), sbtags(1), .sbinit(5).