The dtmalloc provider uses the short description of a malloc type as the
function name of its corresponding DTrace probes. These descriptions may contain whitespace, but probe names cannot, so just replace any whitespace with underscores when creating probes. MFC after: 1 week
This commit is contained in:
parent
19d8e1c74a
commit
837610eb04
@ -28,6 +28,7 @@
|
||||
#include <sys/param.h>
|
||||
#include <sys/systm.h>
|
||||
#include <sys/conf.h>
|
||||
#include <sys/ctype.h>
|
||||
#include <sys/kernel.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/module.h>
|
||||
@ -111,8 +112,17 @@ dtmalloc_type_cb(struct malloc_type *mtp, void *arg __unused)
|
||||
{
|
||||
char name[DTRACE_FUNCNAMELEN];
|
||||
struct malloc_type_internal *mtip = mtp->ks_handle;
|
||||
int i;
|
||||
|
||||
/*
|
||||
* malloc_type descriptions are allowed to contain whitespace, but
|
||||
* DTrace probe identifiers are not, so replace the whitespace with
|
||||
* underscores.
|
||||
*/
|
||||
strlcpy(name, mtp->ks_shortdesc, sizeof(name));
|
||||
for (i = 0; name[i] != 0; i++)
|
||||
if (isspace(name[i]))
|
||||
name[i] = '_';
|
||||
|
||||
if (dtrace_probe_lookup(dtmalloc_id, NULL, name, "malloc") != 0)
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user