about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--subx/020syscalls.cc1
-rwxr-xr-xsubx/test_apps8
2 files changed, 9 insertions, 0 deletions
diff --git a/subx/020syscalls.cc b/subx/020syscalls.cc
index 5fdc40f6..c94785bd 100644
--- a/subx/020syscalls.cc
+++ b/subx/020syscalls.cc
@@ -82,6 +82,7 @@ void process_int80() {
     // Ignore most arguments for now: address hint, protection flags, sharing flags, fd, offset.
     // We only support anonymous maps.
     Reg[EAX].u = new_segment(/*length*/read_mem_u32(Reg[EBX].u+0x4));
+    trace(91, "run") << "result: " << Reg[EAX].u << end();
     break;
   default:
     raise << HEXWORD << EIP << ": unimplemented syscall " << Reg[EAX].u << '\n' << end();
diff --git a/subx/test_apps b/subx/test_apps
index 9be51ab1..988e81ae 100755
--- a/subx/test_apps
+++ b/subx/test_apps
@@ -121,6 +121,14 @@ test `uname` = 'Linux'  &&  {
   grep -vq 'F' ex11.out  # no test failures
 }
 
+echo ex12
+CFLAGS=-g ./subx translate examples/ex12.subx  -o examples/ex12
+test `uname -m` = 'i686'  &&  git diff --quiet examples/ex12
+CFLAGS=-g ./subx run examples/ex12  # final byte of mmap'd address is well-nigh guaranteed to be 0
+test `uname` = 'Linux'  &&  {
+  examples/ex12  # final byte of mmap'd address is well-nigh guaranteed to be 0
+}
+
 echo factorial
 CFLAGS=-g ./subx translate *.subx apps/factorial.subx  -o apps/factorial
 test `uname -m` = 'i686'  &&  git diff --quiet apps/factorial