/usr/include/sptrace.h is in libion-dev 3.2.1+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | /*
sptrace.h: API for using the sptrace space utilization
trace system. sptrace is designed to monitor
space utilization in a generic heap, i.e., a
region of "space" (nominally memory; possibly
shared and possibly persistent) with a flat
address space. Its main purpose is finding
leaks.
Copyright (c) 2002 California Institute of Technology.
ALL RIGHTS RESERVED. U.S. Government Sponsorship
acknowledged.
Author: Scott Burleigh, JPL
Modification History:
Date Who What
11-30-02 SCB Original development.
*/
#include "psm.h"
#ifndef _SPTRACE_H_
#define _SPTRACE_H_
#ifdef __cplusplus
extern "C" {
#endif
extern PsmPartition sptrace_start(int key, int size, char *region,
PsmPartition psm, char *name);
/* Begins an episode of heap usage
tracing. The shared memory key
specifies the region of shared memory
to use for the operations of this
trace episode; a shared memory region
of the indicated size will be dynamically
allocated (unless the region argument
is non-NULL) and the PSM space
management structure for that region
will also be dynamically allocated
unless the psm argument is non-NULL.
The name argument specifies an episode
label that will be used in messages
issued by the trace operations; it
may be helpful to use a name that
meaningfully describes the heap that's
being traced (you can trace in multiple
heaps at the same time) or the trace
episode's purpose. If the sptrace
episode uniquely identified by the
shared memory key already exists, the
effect is the same as sptrace_join
(below). On success, returns a space
management handle for the episode's
PSM-managed shared memory region.
Returns NULL on any error. */
extern PsmPartition sptrace_join(int key, int size, char *region,
PsmPartition psm, char *name);
/* Locates the sptrace episode identified
by key (see sptrace_start), verifies
size, region, and name against that
episode, and returns a space management
handle for the episode's PSM-managed
shared memory region; the PSM space
management structure that the handle
points to will be be dynamically
allocated as needed unless the psm
argument is non-NULL. If no such
sptrace episode exists, or on any
other error, returns NULL. */
extern void sptrace_log_alloc(PsmPartition trace,
unsigned long addr, int size,
char *fileName, int lineNbr);
/* Causes sptrace to log a space allocation
event in the indicated sptrace episode.
addr and size are the address and size
of the newly allocated object. fileName
and lineNbr identify the line of
application source code at which the
activity being logged was initiated. */
extern void sptrace_log_free(PsmPartition trace, unsigned long addr,
char *fileName, int lineNbr);
/* Causes sptrace to log a space release
event. addr is the address of the newly
freed object. fileName and lineNbr
identify the line of application source
code at which the activity being logged
was initiated. */
extern void sptrace_log_memo(PsmPartition trace, unsigned long addr,
char *msg, char *fileName, int lineNbr);
/* Causes sptrace to log a heap management
memo. addr is the address to which the
memo refers; msg is the memo text.
fileName and lineNbr identify the line
of application source code at which the
activity being logged was initiated. */
extern void sptrace_report(PsmPartition trace, int verbose);
/* Prints a report from the trace log,
starting at the beginning of the trace
episode, using the writeMemo function
in 'platform'. If the 'verbose' flag
is zero, only exceptions (e.g., objects
that have been allocated but not yet
freed) and memos are printed; if it is
non-zero, the entire log is printed. */
extern void sptrace_clear(PsmPartition trace);
/* Deletes from the trace log all
allocation events for which matching
release events have been logged, and
also deletes those matching release
events, leaving only events that would
be reportable as exceptions. Enables
trace to run for a long time without
running out of log space. */
extern void sptrace_stop(PsmPartition trace);
/* Ends the current episode of Sptrace
space management tracing and releases
the shared memory allocated to the
trace operations. */
#ifdef __cplusplus
}
#endif
#endif /* _SPTRACE_H_ */
|