summary refs log tree commit diff stats
path: root/results/classifier/118/none/597362
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/none/597362')
-rw-r--r--results/classifier/118/none/597362108
1 files changed, 108 insertions, 0 deletions
diff --git a/results/classifier/118/none/597362 b/results/classifier/118/none/597362
new file mode 100644
index 000000000..e36de7a01
--- /dev/null
+++ b/results/classifier/118/none/597362
@@ -0,0 +1,108 @@
+hypervisor: 0.791
+ppc: 0.782
+graphic: 0.775
+TCG: 0.774
+peripherals: 0.724
+performance: 0.722
+user-level: 0.714
+risc-v: 0.709
+mistranslation: 0.706
+register: 0.706
+virtual: 0.702
+x86: 0.694
+semantic: 0.682
+permissions: 0.681
+network: 0.676
+debug: 0.672
+arm: 0.657
+PID: 0.656
+KVM: 0.649
+architecture: 0.640
+assembly: 0.640
+vnc: 0.626
+boot: 0.609
+device: 0.609
+socket: 0.591
+files: 0.581
+VMM: 0.545
+kernel: 0.530
+i386: 0.475
+
+qemu-system-sparc singlestep not work in gdbstub
+
+Debugging with gdb-stub does not work with qemu-system-sparc target
+
+Qemu compiled from current git tree.
+
+execution string: qemu-system-sparc.exe -s -S -m 256 -L Bios -hda
+sparc.img -boot c
+connect with telnet localhost 1234
+enter '$s#73' (without quotes, this is single step command to gdb stub)
+gdb stub reply '+' (without quotes, as it accept command)
+After this qemu continuously execute instructions in single step mode
+and does not exit to gdb stub after each executed instruction with
+interrupt signal
+("T%02xthread:%02x;" /gdb_vm_state_change in gdbstub.c/ );
+
+If we look at target-sparc/translate.c, we can see that
+gen_helper_debug() is not called in single step mode:
+
+========================
+    if ((pc & TARGET_PAGE_MASK) == (tb->pc & TARGET_PAGE_MASK) &&
+        (npc & TARGET_PAGE_MASK) == (tb->pc & TARGET_PAGE_MASK) &&
+        !s->singlestep)  {
+        /* jump to same page: we can use a direct jump */
+        tcg_gen_goto_tb(tb_num);
+        tcg_gen_movi_tl(cpu_pc, pc);
+        tcg_gen_movi_tl(cpu_npc, npc);
+        tcg_gen_exit_tb((long)tb + tb_num);
+    } else {
+        /* jump to another page: currently not optimized */
+        tcg_gen_movi_tl(cpu_pc, pc);
+        tcg_gen_movi_tl(cpu_npc, npc);
+        tcg_gen_exit_tb(0);
+    }
+=========================
+
+========================
+        /* if single step mode, we generate only one instruction and
+           generate an exception */
+        if (dc->singlestep) {
+            break;
+        }
+========================
+
+If we look similar code at target-sh4/translate.c we can see that is
+called in this cases:
+
+========================
+    if ((tb->pc & TARGET_PAGE_MASK) == (dest & TARGET_PAGE_MASK) &&
+	!ctx->singlestep_enabled) {
+	/* Use a direct jump if in same page and singlestep not enabled */
+        tcg_gen_goto_tb(n);
+        tcg_gen_movi_i32(cpu_pc, dest);
+        tcg_gen_exit_tb((long) tb + n);
+    } else {
+        tcg_gen_movi_i32(cpu_pc, dest);
+        if (ctx->singlestep_enabled)
+            gen_helper_debug();
+        tcg_gen_exit_tb(0);
+    }
+========================
+
+========================
+    if (tb->cflags & CF_LAST_IO)
+        gen_io_end();
+    if (env->singlestep_enabled) {
+        tcg_gen_movi_i32(cpu_pc, ctx.pc);
+        gen_helper_debug();
+    } else {
+==========================
+
+Triaging old bug reports ... Can you still reproduce this problem with the latest version of QEMU?
+
+[Expired for QEMU because there has been no activity for 60 days.]
+
+I'm sure this has been fixed years ago (and qemu-system-sparc single-step seems fine in local tests) so I'm marking this as "Fix released".
+
+