2021-08-31 05:05:56 +08:00
|
|
|
#ifndef JEMALLOC_INTERNAL_PROF_HOOK_H
|
|
|
|
#define JEMALLOC_INTERNAL_PROF_HOOK_H
|
|
|
|
|
2023-06-10 08:37:47 +08:00
|
|
|
#include "jemalloc/internal/jemalloc_preamble.h"
|
|
|
|
|
2021-08-31 05:05:56 +08:00
|
|
|
/*
|
|
|
|
* The hooks types of which are declared in this file are experimental and
|
|
|
|
* undocumented, thus the typedefs are located in an 'internal' header.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* A hook to mock out backtrace functionality. This can be handy, since it's
|
|
|
|
* otherwise difficult to guarantee that two allocations are reported as coming
|
|
|
|
* from the exact same stack trace in the presence of an optimizing compiler.
|
|
|
|
*/
|
|
|
|
typedef void (*prof_backtrace_hook_t)(void **, unsigned *, unsigned);
|
|
|
|
|
2021-09-02 04:00:01 +08:00
|
|
|
/*
|
|
|
|
* A callback hook that notifies about recently dumped heap profile.
|
|
|
|
*/
|
|
|
|
typedef void (*prof_dump_hook_t)(const char *filename);
|
|
|
|
|
2022-11-03 06:17:16 +08:00
|
|
|
/* ptr, size, backtrace vector, backtrace vector length */
|
|
|
|
typedef void (*prof_sample_hook_t)(const void *, size_t, void **, unsigned);
|
|
|
|
|
|
|
|
/* ptr, size */
|
|
|
|
typedef void (*prof_sample_free_hook_t)(const void *, size_t);
|
|
|
|
|
2021-08-31 05:05:56 +08:00
|
|
|
#endif /* JEMALLOC_INTERNAL_PROF_HOOK_H */
|