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~

Reply via email to