summaryrefslogtreecommitdiffstats
path: root/results/scraper/launchpad-without-comments/796480
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/796480
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/796480')
-rw-r--r--results/scraper/launchpad-without-comments/79648045
1 files changed, 45 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/796480 b/results/scraper/launchpad-without-comments/796480
new file mode 100644
index 00000000..726d539b
--- /dev/null
+++ b/results/scraper/launchpad-without-comments/796480
@@ -0,0 +1,45 @@
+Addresses with 4GB differences are consider as one single address in QEMU
+
+THIS IS THE ISSUE OF USER MODE EMULATION
+Information about guest and host
+**********************************
+guest: 64 bit x86 user mode binary
+host: 32 bit Linux OS
+uname -a :Linux KICS-HPCNL-32blue 2.6.33.3-85.fc13.i686.PAE #1 SMP
+architecture: intel64
+Bug Description
+****************
+for memory reference instructions, suppose I have two addresses in guest address space(64 bit)
+0x220000000
+0x320000000
+as lower 32 bit part of both addresses are same, when particular instructions are translated into host code(32 bit)
+in both above cases the value is loaded from same memory and we get same value. where actual behaviour was to get two different values.
+here is the program which i used to test:
+#include <stdio.h>
+#include <stdlib.h>
+#include <limits.h>
+#define SIZE 4294967298 /* 4Gib*/
+
+int main() {
+ char *array;
+ unsigned int i;
+
+ array = malloc(sizeof(char) * SIZE);
+ if(array == NULL) {
+ fprintf(stderr, "Could not allocate that much memory");
+ return 1; }
+ array[0] = 'a';
+ array[SIZE-2] = 'z';
+ printf("array[SIZE-2] = %c array[0] = %c\n",array[SIZE-2], array[0]);
+ return 0;
+}
+I have 8 gib RAM
+I compiled this program on 64 bit linux and run this on 32 bit linux with qemu
+QEMU command line and output
+**********************************
+$x86_64-linux-user/qemu-x86_64 ~/ar_x86
+output: array[SIZE-1] = z,array[0] = z
+Release information
+********************
+x86_64 binary is tested with latest release : qemu-0.14.1
+and with current development tree as well( live code of QEMU using git) \ No newline at end of file