mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-27 13:30:52 +00:00
Add trace points for g_malloc/g_free functions
Derived from a patch submitted by Avi Kivity. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
41a748265f
commit
0750112af4
27
vl.c
27
vl.c
@ -2075,6 +2075,26 @@ static const QEMUOption *lookup_opt(int argc, char **argv,
|
||||
return popt;
|
||||
}
|
||||
|
||||
static gpointer malloc_and_trace(gsize n_bytes)
|
||||
{
|
||||
void *ptr = malloc(n_bytes);
|
||||
trace_qemu_malloc(n_bytes, ptr);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
static gpointer realloc_and_trace(gpointer mem, gsize n_bytes)
|
||||
{
|
||||
void *ptr = realloc(mem, n_bytes);
|
||||
trace_qemu_realloc(mem, n_bytes, ptr);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
static void free_and_trace(gpointer mem)
|
||||
{
|
||||
trace_qemu_free(mem);
|
||||
free(mem);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv, char **envp)
|
||||
{
|
||||
const char *gdbstub_dev = NULL;
|
||||
@ -2103,10 +2123,17 @@ int main(int argc, char **argv, char **envp)
|
||||
const char *trace_file = NULL;
|
||||
const char *log_mask = NULL;
|
||||
const char *log_file = NULL;
|
||||
GMemVTable mem_trace = {
|
||||
.malloc = malloc_and_trace,
|
||||
.realloc = realloc_and_trace,
|
||||
.free = free_and_trace,
|
||||
};
|
||||
|
||||
atexit(qemu_run_exit_notifiers);
|
||||
error_set_progname(argv[0]);
|
||||
|
||||
g_mem_set_vtable(&mem_trace);
|
||||
|
||||
init_clocks();
|
||||
|
||||
qemu_cache_utils_init(envp);
|
||||
|
Loading…
Reference in New Issue
Block a user