mirror of
https://github.com/rehlds/metamod-r.git
synced 2025-01-30 15:37:55 +03:00
71 lines
2.5 KiB
Plaintext
71 lines
2.5 KiB
Plaintext
TraceAPI plugin
|
|
=-=-=-=-=-=-=-=
|
|
|
|
This was originally intended as a (more or less) complete example of a
|
|
Metamod plugin. It catches _every_ call available to it (dll routines both
|
|
before and after the game, as well as engine functions both before and
|
|
after the engine).
|
|
|
|
Because it catches every routine, I figured I'd give it the ability to log
|
|
when given routines are called, so it became an "api tracing" plugin. :)
|
|
|
|
This can actually be useful for tracking the operation of the HL engine,
|
|
as well as that of a particular HL game mod.
|
|
|
|
It recognizes the following server cvars:
|
|
|
|
// Tracing debug levels; higher values log increasingly frequent routines.
|
|
// Currently 0-50. See "api_info.cpp" for the debug levels of various
|
|
// functions.
|
|
|
|
// Trace level for dllapi routines.
|
|
trace_dllapi
|
|
|
|
// Trace level for "new" dllapi routines.
|
|
trace_newapi
|
|
|
|
// Trace level for engine functions.
|
|
trace_engine
|
|
|
|
// Enable unlimited trace logging. By default (as of v1.06), it only
|
|
// logs _one_ trace message per second, to keep from overwhelming the
|
|
// server. Set to "1" to enable unlimited logging. (Default "0")
|
|
trace_unlimit
|
|
|
|
// General debug level, independent of trace levels. Not currently used.
|
|
trace_debug
|
|
|
|
|
|
and the following server commands:
|
|
|
|
// Enable tracing of a given routine, independent of "trace_*" level.
|
|
// See the list of routine names in "api_info.cpp". Case is insignificant.
|
|
trace set <APIroutine>
|
|
|
|
// Disable tracing of a given routine, iff previously enabled with "trace".
|
|
// Doesn't affect routines being logged via "trace_*" level.
|
|
trace unset <APIroutine>
|
|
|
|
// Show the routines being traced.
|
|
trace show
|
|
|
|
// List the various routines that can be traced.
|
|
trace list dllapi
|
|
trace list newapi
|
|
trace list engine
|
|
trace list all
|
|
|
|
// Prints out version/date/etc.
|
|
trace version
|
|
|
|
Note the information it logs on each routine invocation is, at the moment,
|
|
relatively minimal. I included information that seemed obvious (args for a
|
|
ClientCommand, etc), and I've added info for other routines as I've come
|
|
across a need. Most routines I still know too little about to log any
|
|
particular information (CreateBaseline, etc). Feel free to add information
|
|
that you're interested in to the log messages in the routines; the
|
|
examples should be pretty self-explanatory. I'd be interested in knowing
|
|
as well, for adding it to the distribution code.
|
|
|
|
--------------------------------------------------------------------------
|