On 07/03/2017 09:34 AM, Paolo Bonzini wrote:
@@ -215,10 +215,12 @@ void breakpoint_handler(CPUState *cs)
if (cs->watchpoint_hit) {
if (cs->watchpoint_hit->flags & BP_CPU) {
cs->watchpoint_hit = NULL;
- if (check_hw_breakpoints(env, false)) {
- raise_exception(env, EXCP01_DB);
- } else {
- cpu_loop_exit_noexc(cs);
+ if (tcg_enabled()) {
+ if (check_hw_breakpoints(env, false)) {
+ raise_exception(env, EXCP01_DB);
+ } else {
+ cpu_loop_exit_noexc(cs);
+ }
This seems like an odd place for the tcg_enabled check. It seems like it
should be much higher in the if/call chain.
Why are we doing all these bp checks only to disable the final raising of an
exception?
Indeed, what in bpt_helper.c needs to be compiled in when !tcg_enabled?
r~