提交 0750112a 编写于 作者: A Anthony Liguori

Add trace points for g_malloc/g_free functions

Derived from a patch submitted by Avi Kivity.
Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
上级 41a74826
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册