Using the BOINC Diagnostics API
From Unofficial BOINC Wiki
BOINC Applications can call
int boinc_init_diagnostics(int flags)
to initialize various diagnostic functions. This call should be made early in the program - before boinc_init() - so that error info is routed appopriately. flags is formed by or'ing together a subset of the following flags:
#define BOINC_DIAG_DUMPCALLSTACKENABLED 0x00000001L #define BOINC_DIAG_HEAPCHECKENABLED 0x00000002L #define BOINC_DIAG_MEMORYLEAKCHECKENABLED 0x00000004L #define BOINC_DIAG_ARCHIVESTDERR 0x00000008L #define BOINC_DIAG_ARCHIVESTDOUT 0x00000010L #define BOINC_DIAG_REDIRECTSTDERR 0x00000020L #define BOINC_DIAG_REDIRECTSTDOUT 0x00000040L #define BOINC_DIAG_REDIRECTSTDERROVERWRITE 0x00000080L #define BOINC_DIAG_REDIRECTSTDOUTOVERWRITE 0x00000100L #define BOINC_DIAG_TRACETOSTDERR 0x00000200L #define BOINC_DIAG_TRACETOSTDOUT 0x00000400L
The flags are as follows. Applications are advised to use at least BOINC_DIAG_DUMPCALLSTACKENABLED, BOINC_DIAG_REDIRECTSTDERR, and BOINC_DIAG_TRACETOSTDERR.
| BOINC_DIAG_DUMPCALLSTACKENABLED | If the application crashes, write a symbolic call stack to stderr. If you use this in a Windows app, you must include lib/stackwalker_win.cpp in the compile, and you must include the .pdb (symbol) file in your app version bundle. |
| BOINC_DIAG_HEAPCHECKENABLED | Check the integrity of the malloc heap every N allocations. (N is line 120 in diagnostics.C; default 1024). |
| BOINC_DIAG_MEMORYLEAKCHECKENABLED | When process exits, write descriptions of any outstanding memory allocations to stderr. |
| BOINC_DIAG_ARCHIVESTDERR | Rename stderr.txt to stderr.old on startup. |
| BOINC_DIAG_ARCHIVESTDOUT | Rename stdout.txt to stdout.old on startup. |
| BOINC_DIAG_REDIRECTSTDERR | Redirect stderr to stderr.txt. |
| BOINC_DIAG_REDIRECTSTDOUT | Redirect stdout to stdout.txt. |
| BOINC_DIAG_REDIRECTSTDERROVERWRITE | Overwrite stderr.txt (default is to append). |
| BOINC_DIAG_REDIRECTSTDOUTOVERWRITE | Overwrite stdout.txt (default is to append). |
| BOINC_DIAG_TRACETOSTDERR | Write TRACE macros to stderr (Windows specific). |
| BOINC_DIAG_TRACETOSTDOUT | Write TRACE macros to stdout (Windows specific). |
[edit] UCB Source
[edit] Copyright ©
- 2005 University of California
- 2005 Paul D. Buck
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.

