summaryrefslogtreecommitdiffstats
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)
downloademulator-bug-study-33606b41d35115f887ea688b1a16f2ff85bf2fe4.tar.gz
emulator-bug-study-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 00000000..710a2e2a
--- /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