summary refs log tree commit diff stats
path: root/results/scraper/launchpad-without-comments/597362
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-06-30 12:24:58 +0000
committerChristian Krinitsin <mail@krinitsin.com>2025-06-30 12:27:06 +0000
commit33606b41d35115f887ea688b1a16f2ff85bf2fe4 (patch)
tree406b2c7b19a087ba437c68f3dbf0b589fa1d6150 /results/scraper/launchpad-without-comments/597362
parentadedf8771bc4de3113041ca21bd4d0d1c0014b6a (diff)
downloadqemu-analysis-33606b41d35115f887ea688b1a16f2ff85bf2fe4.tar.gz
qemu-analysis-33606b41d35115f887ea688b1a16f2ff85bf2fe4.zip
add launchpad bug reports without comments
Diffstat (limited to 'results/scraper/launchpad-without-comments/597362')
-rw-r--r--results/scraper/launchpad-without-comments/59736270
1 files changed, 70 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/597362 b/results/scraper/launchpad-without-comments/597362
new file mode 100644
index 000000000..710a2e2ad
--- /dev/null
+++ b/results/scraper/launchpad-without-comments/597362
@@ -0,0 +1,70 @@
+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 {
+==========================
\ No newline at end of file