[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 17/17] cpu: Add breakpoint tracepoints
From: |
Richard Henderson |
Subject: |
[PATCH 17/17] cpu: Add breakpoint tracepoints |
Date: |
Thu, 1 Jul 2021 08:25:37 -0700 |
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
cpu.c | 11 ++++++++---
trace-events | 5 +++++
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/cpu.c b/cpu.c
index 2c9da10d0f..addcb5db9c 100644
--- a/cpu.c
+++ b/cpu.c
@@ -38,6 +38,7 @@
#include "exec/translate-all.h"
#include "exec/log.h"
#include "hw/core/accel-cpu.h"
+#include "trace/trace-root.h"
uintptr_t qemu_host_page_size;
intptr_t qemu_host_page_mask;
@@ -267,6 +268,8 @@ int cpu_breakpoint_insert(CPUState *cpu, vaddr pc, int
flags,
if (breakpoint) {
*breakpoint = bp;
}
+
+ trace_breakpoint_insert(cpu->cpu_index, pc, flags);
return 0;
}
@@ -285,11 +288,12 @@ int cpu_breakpoint_remove(CPUState *cpu, vaddr pc, int
flags)
}
/* Remove a specific breakpoint by reference. */
-void cpu_breakpoint_remove_by_ref(CPUState *cpu, CPUBreakpoint *breakpoint)
+void cpu_breakpoint_remove_by_ref(CPUState *cpu, CPUBreakpoint *bp)
{
- QTAILQ_REMOVE(&cpu->breakpoints, breakpoint, entry);
+ QTAILQ_REMOVE(&cpu->breakpoints, bp, entry);
- g_free(breakpoint);
+ trace_breakpoint_remove(cpu->cpu_index, bp->pc, bp->flags);
+ g_free(bp);
}
/* Remove all matching breakpoints. */
@@ -313,6 +317,7 @@ void cpu_single_step(CPUState *cpu, int enabled)
if (kvm_enabled()) {
kvm_update_guest_debug(cpu, 0);
}
+ trace_breakpoint_singlestep(cpu->cpu_index, enabled);
}
}
diff --git a/trace-events b/trace-events
index 765fe251e6..c4cca29939 100644
--- a/trace-events
+++ b/trace-events
@@ -25,6 +25,11 @@
#
# The <format-string> should be a sprintf()-compatible format string.
+# cpu.c
+breakpoint_insert(int cpu_index, uint64_t pc, int flags) "cpu=%d pc=0x%"
PRIx64 " flags=0x%x"
+breakpoint_remove(int cpu_index, uint64_t pc, int flags) "cpu=%d pc=0x%"
PRIx64 " flags=0x%x"
+breakpoint_singlestep(int cpu_index, int enabled) "cpu=%d enable=%d"
+
# dma-helpers.c
dma_blk_io(void *dbs, void *bs, int64_t offset, bool to_dev) "dbs=%p bs=%p
offset=%" PRId64 " to_dev=%d"
dma_aio_cancel(void *dbs) "dbs=%p"
--
2.25.1
- [PATCH 01/17] target/i386: Use cpu_breakpoint_test in breakpoint_handler, (continued)
- [PATCH 01/17] target/i386: Use cpu_breakpoint_test in breakpoint_handler, Richard Henderson, 2021/07/01
- [PATCH 07/17] accel/tcg: Reduce CF_COUNT_MASK to match TCG_MAX_INSNS, Richard Henderson, 2021/07/01
- [PATCH 05/17] accel/tcg: Log tb->cflags with -d exec, Richard Henderson, 2021/07/01
- [PATCH 04/17] accel/tcg: Split out log_cpu_exec, Richard Henderson, 2021/07/01
- [PATCH 03/17] accel/tcg: Move tb_lookup to cpu-exec.c, Richard Henderson, 2021/07/01
- [PATCH 13/17] accel/tcg: Move cflags lookup into tb_find, Richard Henderson, 2021/07/01
- [PATCH 11/17] accel/tcg: Handle -singlestep in curr_cflags, Richard Henderson, 2021/07/01
- [PATCH 12/17] accel/tcg: Use CF_NO_GOTO_{TB, PTR} in cpu_exec_step_atomic, Richard Henderson, 2021/07/01
- [PATCH 17/17] cpu: Add breakpoint tracepoints,
Richard Henderson <=
- [PATCH 09/17] accel/tcg: Add CF_NO_GOTO_TB and CF_NO_GOTO_PTR, Richard Henderson, 2021/07/01
- [PATCH 10/17] accel/tcg: Drop CF_NO_GOTO_PTR from -d nochain, Richard Henderson, 2021/07/01
- [PATCH 15/17] accel/tcg: Hoist tb_cflags to a local in translator_loop, Richard Henderson, 2021/07/01
- [PATCH 14/17] accel/tcg: Adjust interface of TranslatorOps.breakpoint_check, Richard Henderson, 2021/07/01
- [PATCH 08/17] accel/tcg: Move curr_cflags into cpu-exec.c, Richard Henderson, 2021/07/01
- [PATCH 16/17] accel/tcg: Encode breakpoint info into tb->cflags, Richard Henderson, 2021/07/01
- Re: [PATCH 00/17] tcg: breakpoint reorg, Mark Cave-Ayland, 2021/07/03