Messages are printed to standard error, when problems are detected (normally standard is rerouted to the DDS print file). Nominal processing can also be monitored. The contents of each trace read or written can be printed. The real names of temporary files can be printed, and their contents preserved for inspection.
The end user can define
dds_debug= keywords
to control this feature. Recognized values are shown below. Keyword groups are mutually exclusive. The keyword read (or write) may be added to limit the dump to input (or output) traces.
keyword description
---------------- --------------------------------------
diff only field changes
diff0 lower level changes
diff1 same as "diff"
diff2 secondary sort changes
max set diff dump limit (default 30)
list "f1 f2 ..." dump selected headers
usp dump set subset of usp headers
segy dump set subset of segy headers
-verbose turn off verbose mode (on by default)
-debug turn off debug print (on by default)
+tmp save tmp files (off by default)
read dump on read only
write dump on write only
seek dump on seek only
dbg_heap check memory on each allocation & free
dbg_alloc check memory on each allocation
dbg_free check memory on each free
dbg_call check memory on each API call
dbg_trace trace all API calls
dbg_scanner trace compiler scanner
dbg_uncompile dump uncompile stacks
dbg_symbol dump binary symbol tables
dbg_binary dump binary
dbg_panic dump binary tables on panic
dbg_all dump all
If "dds_debug= buf 8" is defined, all fields in all
traces are printed. Vector field dumps are limited to 8 elements.
This prints a lot of (unwanted) information.
If "dds_debug= read diff" is defined, only input
traces are printed. By default, vector field dumps are limited to 30
elements. The name and value of all fields in the first trace are
printed. After the first, fields are printed only if they differ
from the previous trace. This makes interesting information more
visible, by eliminating clutter from constant fields. The end user
can replace uncertainty with knowledge, when faced with new data.
Hint: If only the dump is wanted, define
"out_data= /dev/null" to dispose of binary data.
If the read keyword is eliminated, both input and
output traces are printed. This can be used to quality control
field mapping from one format to another. An input trace is
displayed, followed by the corresponding output trace. Some
applications may dump traces by ensemble (records, or 2D planes).
If diff2 is used, more clutter is eliminated.
Traces are compared to two previous values. Constant fields are
printed, only if they start changing. Varying fields are printed,
only if they become constant. This technique highlights field
changes at secondary sort (record) boundaries. All fields are
printed from the first two traces, to provide a reference point.
The list keyword is used to select fields for
a tabular dump. Selected fields are printed on one line for each
trace. Only the first value from a vector field is displayed.
The keywords, usp and segy,
are predefined lists. If multiple standards are requested,
a compromise is made to limit print line width. For example:
dds_debug= usp
comment= "usp", as an explicit list
dds_debug= list "RecNum TrcNum RecInd DphInd
SrcLoc SoPtNm SrcPnt LinInd DstSgn StaCor"
Standard error will scroll off the screen, unless redirected. Redirection syntax is dependent upon the Unix shell. These examples assume the C shell is used to execute bridge.
bridge par= file >& log
bridge par= file |& more
bridge par= file |& xcat
bridge par= file |& tee log
(bridge par= file | cmd2 ...) |& tee log
Hint: ctrl-c can be used to interrupt execution, after sufficient data is printed.
These examples assume the Bourne shell is used.
bridge par= file 2> log
bridge par= file 2>&1 | more
bridge par= file 2>&1 | xcat
bridge par= file 2>&1 | tee log
(bridge par= file | cmd2 ...) 2>&1 | tee log
Also see Runtime Control for enbaling debug features.