// logging tapset // Copyright (C) 2005, 2006 Red Hat Inc. // // This file is part of systemtap, and is free software. You can // redistribute it and/or modify it under the terms of the GNU General // Public License (GPL); either version 2, or (at your option) any // later version. function print (msg:string) %{ _stp_print (THIS->msg); %} // like print but with a newline function log (msg:string) %{ _stp_printf ("%s\n", THIS->msg); %} function warn (msg:string) %{ _stp_warn ("%s", THIS->msg); %} // NB: exit() does *not* cause immediate return from current function/probe function exit () %{ _stp_exit (); %} function error (msg:string) %{ /* This is an assignment of a local char[] to a global char*. It would normally be just as unsafe as returning a pointer to a local variable from a function. However, the translated code ensures that upon an error (last_error != NULL), the context stack is only ever unwound, and not reused, before the probe-level stp-error call. */ CONTEXT->last_error = THIS->msg; CONTEXT->last_stmt = NULL; %}