btrace -- Generate a Traceback

SYNOPSIS

 #include <lclib.h>

 void btrace(void (*fp)(const char *));
 

DESCRIPTION

btrace generates a library traceback similar to the traceback generated when an ABEND occurs. btrace is useful for debugging or diagnosing error conditions.

fp may be NULL or a pointer to a function. If it is NULL, then btrace writes the traceback to stderr (the standard error file). If fp is not NULL, then btrace calls the function for each line of the traceback. One traceback line, in the form of a string, is passed to the function. (The traceback line does not terminate in a newline character.)

RETURN VALUE

btrace has no return value.

EXAMPLE

This example defines a function to write traceback lines to a file:
  #include <lclib.h>
  #include <stdio.h>

  static void btrace_out(const char *line)
  {
     static FILE *tbf;

        /* If first call, open traceback file.      */
     if (tbf == NULL) {
        tbf = fopen("TRACBACK", "w");
        if (tbf == NULL) exit(12);
        }

        /* Write one line of traceback information. */
     fputs(line, tbf);
     putc('n', tbf);
  }

     /* Define a function to send a message         */
     /*  to stderr and then call btrace().          */
  void genbtrac(char *msg)
  {
     fputs(msg, stderr);
     btrace(&btrace_out);
     fputs("Traceback generated.n", stderr);
     exit(12);
  }

 

SEE ALSO

Diagnostic Control Functions

Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.