Index Page
trcdep_c
A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 

Procedure
Abstract
Required_Reading
Keywords
Brief_I/O
Detailed_Input
Detailed_Output
Parameters
Exceptions
Files
Particulars
Examples
Restrictions
Literature_References
Author_and_Institution
Version
Index_Entries

Procedure

   void trcdep_c ( SpiceInt  * depth ) 

Abstract

 
   Return the number of modules in the traceback representation. 
 

Required_Reading

 
   ERROR 
 

Keywords

 
   ERROR 
 

Brief_I/O

 
   VARIABLE  I/O  DESCRIPTION 
   --------  ---  ---------------------------------------------------  
   depth      O   The number of modules in the traceback. 
 

Detailed_Input

 
   None. 
 

Detailed_Output

 
   depth          indicates the number of module names in the traceback
                  representation.
 
                  The module names represent modules in a call chain,
                  with the first name being the top-level module, and
                  the name with index `depth' being the lowest level
                  module.
 
                  The meaning of the traceback depends on the state of
                  the error handling mechanism. There are two cases:
 
                     1)  In RETURN mode, when an error is 
                         signaled, the traceback at that point is 
                         saved. trcdep_c, trcnam_c, and qcktrc_c
                         return values pertaining to the saved 
                         traceback. 
 
                     2)  In all other modes, the traceback represents 
                         the CURRENT call chain. trcdep_c, trcnam_c, 
                         and qcktrc_c return values pertaining to 
                         the current trace representation. 
 

Parameters

 
   None. 
 

Exceptions

 
   Error free. 
 

Files

 
   None. 
 

Particulars

  
   SPICE-based applications can use this routine, together with
   trcnam_c, to create a customized traceback report. This is normally
   done after an application detects a SPICE error condition using
   failed_c.
 
   The CSPICE routine qcktrc_c is an alternative to the combination of
   trcdep_c and trcnam_c; qcktrc_c can be used to fetch a complete,
   fixed-format traceback string in a single call.

Examples

 
   1) Deliberately generate a SPICE error to demonstrate use of 
      this routine together with trcnam_c. We'll attempt to look up 
      a state vector via spkezr_c without first having loaded any
      SPK files.

      Example code begins here.


         #include <stdio.h>
         #include "SpiceUsr.h"

         int main()
         {
            /.
            Local constants 
            ./
            #define ACTION          "RETURN"

            /.
            Local variables 
            ./   
            SpiceChar             * abcorr;
            SpiceChar               longms  [ SPICE_ERROR_LMSGLN ];
            SpiceChar               modnam  [ SPICE_ERROR_MODLEN ];
            SpiceChar               shrtms  [ SPICE_ERROR_SMSGLN ];
            SpiceChar             * obsrvr;
            SpiceChar             * frame;
            SpiceChar             * target;

            SpiceDouble             et;
            SpiceDouble             lt;
            SpiceDouble             state [6];

            SpiceInt                depth;
            SpiceInt                i;

            /.
            Set error handling action to RETURN so that this program
            won't terminate when a SPICE error is signaled. Note that
            the input string length argument is unused for a "SET"
            operation.
            ./
            erract_c ( "SET", 0, ACTION );

            /.
            Generate a SPICE error: call spkezr_c without first having
            loaded an SPK file. 
            ./ 
            et     = 0.0;
            target = "Moon";
            obsrvr = "Earth";
            frame  = "J2000";
            abcorr = "NONE";

            spkezr_c ( target, et, frame, abcorr, obsrvr, state, &lt );

            if ( failed_c() ) 
            {
               /.
               An error has been signaled. First fetch the long
               and short error message. Next fetch the traceback depth,
               then fetch and display the module names. 
               ./
               getmsg_c ( "SHORT", SPICE_ERROR_SMSGLN, shrtms );
               getmsg_c ( "LONG",  SPICE_ERROR_LMSGLN, longms );

               printf ( "\n%s\n", shrtms );
               printf ( "%s\n\n", longms );

               trcdep_c ( &depth );

               for ( i = 0;  i < depth;  i++ )
               {
                  trcnam_c ( i, SPICE_ERROR_MODLEN, modnam );

                  printf ( "Trace level: %d. Module name = %s\n",
                           (int)i,
                           modnam                                 );
               }

               /.
               Reset the error status so that CSPICE can resume normal
               operation. 
               ./
               reset_c();
            }

            return ( 0 );
         }


      When this program was executed on a PC/Linux/gcc platform, the
      output (which has been reformatted to fit in the available 
      space in this header) was:


         ====================================================================
         ============

         Toolkit version: N0065

         SPICE(NOLOADEDFILES) --

         At least one SPK file needs to be loaded by SPKLEF before beginning 
         a search.

         A traceback follows.  The name of the highest level module is first.
         spkezr_c --> SPKEZR --> SPKEZ --> SPKGEO --> SPKSFS

         ====================================================================
         ============

         SPICE(NOLOADEDFILES)
         At least one SPK file needs to be loaded by SPKLEF before beginning 
         a search.

         Trace level: 0. Module name = spkezr_c
         Trace level: 1. Module name = SPKEZR
         Trace level: 2. Module name = SPKEZ
         Trace level: 3. Module name = SPKGEO
         Trace level: 4. Module name = SPKSFS

Restrictions

 
   None. 
 

Literature_References

 
   None. 
 

Author_and_Institution

 
   N.J. Bachman    (JPL) 
   K.R. Gehringer  (JPL) 
 

Version

 
   -CSPICE Version 1.0.1, 12-JUL-2016 (EDW)

      Edit to example program to use "%d" with explicit casts
      to int for printing SpiceInts with printf.

   -CSPICE Version 1.0.0, 05-NOV-2013 (NJB) (KRG)

Index_Entries

 
   return traceback depth 
 

Link to routine trcdep_c source file trcdep_c.c

Wed Apr  5 17:54:45 2017