diff options
author | bmc <none@none> | 2005-08-30 14:48:05 -0700 |
---|---|---|
committer | bmc <none@none> | 2005-08-30 14:48:05 -0700 |
commit | a1b5e537933659371285214eae1db2603e6364b4 (patch) | |
tree | 0e310d875940b00d01f2e43f9481f1bbc706165f /usr/src/lib/libdtrace/common/dtrace.h | |
parent | 20bfb7bbfd42ba8121fb6ca123254c43402579ca (diff) | |
download | illumos-joyent-a1b5e537933659371285214eae1db2603e6364b4.tar.gz |
6256581 System got a hang or a panic with dtrace+kmdb
6264573 unanchored dtrace_getpcstack is rather imprecise toward function end
6289517 dtrace doesn't like fd_intr anymore
6291378 dtrace helpers can interfere with the use of kmdb
6295554 dtrace doesn't report errors in ERROR probes
6311947 add umod()/ufunc()/usym(), mod()/func()/sym()
6311952 buffered handler should be called after printing each tuple element
6311956 drops induced by END are not recorded
6311958 should indicate missing jstack() frames due to string table overflows
6311960 allow some DTrace options to be set dynamically
6311963 jstack() produces stacks packed with "StubRoutines"
6311975 allow boolean DTrace options to be unset
6315028 allow quantize()/lquantize() increments to be D expressions
6315033 add dtrace_addr2str()/dtrace_uaddr2str() to libdtrace API
6315034 add ucaller variable
6315035 enablings containing USDT probes are not dynamically reevaluated
6315037 cannot aggregate on the return value of some subroutines
6315039 including <sys/kstat.h> in a D script induces compile-time error
6315087 stack() not correctly printed for 32-bit consumers on amd64 kernel
6315975 flowindent should operate on any probe ending in "-entry"/"-return"
6317350 symbol tables should not be discarded for UNDEAD processes
Diffstat (limited to 'usr/src/lib/libdtrace/common/dtrace.h')
-rw-r--r-- | usr/src/lib/libdtrace/common/dtrace.h | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/usr/src/lib/libdtrace/common/dtrace.h b/usr/src/lib/libdtrace/common/dtrace.h index efeb44550a..6d8fa80dc9 100644 --- a/usr/src/lib/libdtrace/common/dtrace.h +++ b/usr/src/lib/libdtrace/common/dtrace.h @@ -267,7 +267,7 @@ typedef struct dtrace_errdata { const char *dteda_msg; /* preconstructed message */ } dtrace_errdata_t; -typedef int dtrace_handle_err_f(dtrace_errdata_t *, void *); +typedef int dtrace_handle_err_f(const dtrace_errdata_t *, void *); extern int dtrace_handle_err(dtrace_hdl_t *, dtrace_handle_err_f *, void *); typedef enum { @@ -278,7 +278,9 @@ typedef enum { DTRACEDROP_DYNDIRTY, /* dyn drop due to dirty */ DTRACEDROP_SPEC, /* speculative drop */ DTRACEDROP_SPECBUSY, /* spec drop due to busy */ - DTRACEDROP_SPECUNAVAIL /* spec drop due to unavail */ + DTRACEDROP_SPECUNAVAIL, /* spec drop due to unavail */ + DTRACEDROP_STKSTROVERFLOW, /* stack string tab overflow */ + DTRACEDROP_DBLERROR /* error in ERROR probe */ } dtrace_dropkind_t; typedef struct dtrace_dropdata { @@ -290,7 +292,7 @@ typedef struct dtrace_dropdata { const char *dtdda_msg; /* preconstructed message */ } dtrace_dropdata_t; -typedef int dtrace_handle_drop_f(dtrace_dropdata_t *, void *); +typedef int dtrace_handle_drop_f(const dtrace_dropdata_t *, void *); extern int dtrace_handle_drop(dtrace_hdl_t *, dtrace_handle_drop_f *, void *); typedef void dtrace_handle_proc_f(struct ps_prochandle *, void *); @@ -300,14 +302,26 @@ typedef struct dtrace_bufdata { dtrace_hdl_t *dtbda_handle; /* handle to DTrace library */ const char *dtbda_buffered; /* buffered output */ dtrace_probedata_t *dtbda_probe; /* probe data */ - dtrace_recdesc_t *dtbda_recdesc; /* record description */ - dtrace_aggdata_t *dtbda_aggdata; /* aggregation data, if agg. */ + const dtrace_recdesc_t *dtbda_recdesc; /* record description */ + const dtrace_aggdata_t *dtbda_aggdata; /* aggregation data, if agg. */ } dtrace_bufdata_t; -typedef int dtrace_handle_buffered_f(dtrace_bufdata_t *, void *); +typedef int dtrace_handle_buffered_f(const dtrace_bufdata_t *, void *); extern int dtrace_handle_buffered(dtrace_hdl_t *, dtrace_handle_buffered_f *, void *); +typedef struct dtrace_setoptdata { + dtrace_hdl_t *dtsda_handle; /* handle to DTrace library */ + const dtrace_probedata_t *dtsda_probe; /* probe data */ + const char *dtsda_option; /* option that was set */ + dtrace_optval_t dtsda_oldval; /* old value */ + dtrace_optval_t dtsda_newval; /* new value */ +} dtrace_setoptdata_t; + +typedef int dtrace_handle_setopt_f(const dtrace_setoptdata_t *, void *); +extern int dtrace_handle_setopt(dtrace_hdl_t *, + dtrace_handle_setopt_f *, void *); + /* * DTrace Aggregate Interface */ @@ -337,7 +351,7 @@ struct dtrace_aggdata { caddr_t *dtada_percpu_delta; /* per CPU delta, if avail */ }; -typedef int dtrace_aggregate_f(dtrace_aggdata_t *, void *); +typedef int dtrace_aggregate_f(const dtrace_aggdata_t *, void *); typedef int dtrace_aggregate_walk_f(dtrace_hdl_t *, dtrace_aggregate_f *, void *); @@ -501,10 +515,14 @@ struct dtrace_vector { /* * DTrace Utility Functions * - * Library clients can use these functions to convert between string and - * integer probe descriptions and the dtrace_probedesc_t representation - * and to perform similar conversions on stability attributes. + * Library clients can use these functions to convert addresses strings, to + * convert between string and integer probe descriptions and the + * dtrace_probedesc_t representation, and to perform similar conversions on + * stability attributes. */ +extern int dtrace_addr2str(dtrace_hdl_t *, uint64_t, char *, int); +extern int dtrace_uaddr2str(dtrace_hdl_t *, pid_t, uint64_t, char *, int); + extern int dtrace_xstr2desc(dtrace_hdl_t *, dtrace_probespec_t, const char *, int, char *const [], dtrace_probedesc_t *); |