|
From: <sv...@va...> - 2009-04-25 03:01:58
|
Author: njn
Date: 2009-04-25 04:01:33 +0100 (Sat, 25 Apr 2009)
New Revision: 9621
Log:
Move int3-x86 into x86-linux/.
Added:
branches/DARWIN/memcheck/tests/x86-linux/int3-x86.c
branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stderr.exp
branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stdout.exp
branches/DARWIN/memcheck/tests/x86-linux/int3-x86.vgtest
Removed:
branches/DARWIN/memcheck/tests/x86/int3-x86.c
branches/DARWIN/memcheck/tests/x86/int3-x86.stderr.exp
branches/DARWIN/memcheck/tests/x86/int3-x86.stdout.exp
branches/DARWIN/memcheck/tests/x86/int3-x86.vgtest
Modified:
branches/DARWIN/memcheck/tests/x86-linux/Makefile.am
branches/DARWIN/memcheck/tests/x86/Makefile.am
Modified: branches/DARWIN/memcheck/tests/x86/Makefile.am
===================================================================
--- branches/DARWIN/memcheck/tests/x86/Makefile.am 2009-04-25 00:07:37 UTC (rev 9620)
+++ branches/DARWIN/memcheck/tests/x86/Makefile.am 2009-04-25 03:01:33 UTC (rev 9621)
@@ -13,7 +13,6 @@
$(addsuffix .stderr.exp,$(INSN_TESTS)) \
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
$(addsuffix .vgtest,$(INSN_TESTS)) \
- int3-x86.vgtest int3-x86.stderr.exp int3-x86.stdout.exp \
pushfpopf.stderr.exp pushfpopf.stdout.exp pushfpopf.vgtest \
pushfw_x86.vgtest pushfw_x86.stdout.exp pushfw_x86.stderr.exp \
pushpopmem.stderr.exp pushpopmem.stdout.exp pushpopmem.vgtest \
@@ -39,13 +38,6 @@
tronical \
xor-undef-x86
-# DDD: not sure if these ones should work on Darwin or not... if not, should
-# be moved into x86-linux/.
-if ! VGCONF_OS_IS_DARWIN
- check_PROGRAMS += \
- int3-x86
-endif
-
AM_CFLAGS += @FLAG_M32@ $(FLAG_MMMX) $(FLAG_MSSE)
AM_CXXFLAGS += @FLAG_M32@ $(FLAG_MMMX) $(FLAG_MSSE)
AM_CCASFLAGS += @FLAG_M32@
Deleted: branches/DARWIN/memcheck/tests/x86/int3-x86.c
===================================================================
--- branches/DARWIN/memcheck/tests/x86/int3-x86.c 2009-04-25 00:07:37 UTC (rev 9620)
+++ branches/DARWIN/memcheck/tests/x86/int3-x86.c 2009-04-25 03:01:33 UTC (rev 9621)
@@ -1,52 +0,0 @@
-
-#undef _GNU_SOURCE
-#define _GNU_SOURCE 1
-
-#include <signal.h>
-#include <stdio.h>
-#include <sys/ucontext.h>
-
-static char* eip_at_sig = NULL;
-
-static void int_handler(int signum, siginfo_t *si, void *uc_arg)
-{
- ucontext_t *uc = (ucontext_t *)uc_arg;
- /* Note that uc->uc_mcontext is an embedded struct, not a pointer */
- mcontext_t *mc = &(uc->uc_mcontext);
- void *pc = (void*)mc->gregs[REG_EIP];
- printf("in int_handler, EIP is ...\n");
- eip_at_sig = pc;
-}
-
-static void register_handler(int sig, void *handler)
-{
- struct sigaction sa;
- sa.sa_flags = SA_RESTART | SA_SIGINFO;
- sigfillset(&sa.sa_mask);
- sa.sa_sigaction = handler;
- sigaction(sig, &sa, NULL);
-}
-
-int main(void) {
- char *intaddr = NULL;
- puts("main");
- register_handler(SIGTRAP, int_handler);
- asm volatile(
- "movl $zz_int, %%edx\n"
- "mov %%edx, %0\n"
- "zz_int:\n"
- "int $3\n"
- : /* no outputs */
- : "m" (intaddr) /* input: address of var to store target addr to */
- : /* clobbers */ "edx"
- );
- /* intaddr is the address of the int 3 insn. eip_at_sig is the PC
- after the exception, which should be the next insn along.
- Hence: */
- if (intaddr != NULL && eip_at_sig != NULL
- && eip_at_sig == intaddr+1)
- printf("PASS\n");
- else
- printf("FAIL\n");
- return 0;
-}
Deleted: branches/DARWIN/memcheck/tests/x86/int3-x86.stderr.exp
===================================================================
Deleted: branches/DARWIN/memcheck/tests/x86/int3-x86.stdout.exp
===================================================================
--- branches/DARWIN/memcheck/tests/x86/int3-x86.stdout.exp 2009-04-25 00:07:37 UTC (rev 9620)
+++ branches/DARWIN/memcheck/tests/x86/int3-x86.stdout.exp 2009-04-25 03:01:33 UTC (rev 9621)
@@ -1,3 +0,0 @@
-main
-in int_handler, EIP is ...
-PASS
Deleted: branches/DARWIN/memcheck/tests/x86/int3-x86.vgtest
===================================================================
--- branches/DARWIN/memcheck/tests/x86/int3-x86.vgtest 2009-04-25 00:07:37 UTC (rev 9620)
+++ branches/DARWIN/memcheck/tests/x86/int3-x86.vgtest 2009-04-25 03:01:33 UTC (rev 9621)
@@ -1,2 +0,0 @@
-prog: int3-x86
-vgopts: -q
Modified: branches/DARWIN/memcheck/tests/x86-linux/Makefile.am
===================================================================
--- branches/DARWIN/memcheck/tests/x86-linux/Makefile.am 2009-04-25 00:07:37 UTC (rev 9620)
+++ branches/DARWIN/memcheck/tests/x86-linux/Makefile.am 2009-04-25 03:01:33 UTC (rev 9621)
@@ -9,6 +9,7 @@
EXTRA_DIST = $(noinst_SCRIPTS) \
bug133694.vgtest bug133694.stderr.exp bug133694.stdout.exp \
+ int3-x86.vgtest int3-x86.stderr.exp int3-x86.stdout.exp \
scalar.stderr.exp scalar.vgtest \
scalar_fork.stderr.exp scalar_fork.vgtest \
scalar_exit_group.stderr.exp \
@@ -19,6 +20,7 @@
check_PROGRAMS = \
bug133694 \
+ int3-x86 \
scalar scalar_exit_group scalar_fork scalar_supp scalar_vfork
Copied: branches/DARWIN/memcheck/tests/x86-linux/int3-x86.c (from rev 9616, branches/DARWIN/memcheck/tests/x86/int3-x86.c)
===================================================================
--- branches/DARWIN/memcheck/tests/x86-linux/int3-x86.c (rev 0)
+++ branches/DARWIN/memcheck/tests/x86-linux/int3-x86.c 2009-04-25 03:01:33 UTC (rev 9621)
@@ -0,0 +1,52 @@
+
+#undef _GNU_SOURCE
+#define _GNU_SOURCE 1
+
+#include <signal.h>
+#include <stdio.h>
+#include <sys/ucontext.h>
+
+static char* eip_at_sig = NULL;
+
+static void int_handler(int signum, siginfo_t *si, void *uc_arg)
+{
+ ucontext_t *uc = (ucontext_t *)uc_arg;
+ /* Note that uc->uc_mcontext is an embedded struct, not a pointer */
+ mcontext_t *mc = &(uc->uc_mcontext);
+ void *pc = (void*)mc->gregs[REG_EIP];
+ printf("in int_handler, EIP is ...\n");
+ eip_at_sig = pc;
+}
+
+static void register_handler(int sig, void *handler)
+{
+ struct sigaction sa;
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+ sigfillset(&sa.sa_mask);
+ sa.sa_sigaction = handler;
+ sigaction(sig, &sa, NULL);
+}
+
+int main(void) {
+ char *intaddr = NULL;
+ puts("main");
+ register_handler(SIGTRAP, int_handler);
+ asm volatile(
+ "movl $zz_int, %%edx\n"
+ "mov %%edx, %0\n"
+ "zz_int:\n"
+ "int $3\n"
+ : /* no outputs */
+ : "m" (intaddr) /* input: address of var to store target addr to */
+ : /* clobbers */ "edx"
+ );
+ /* intaddr is the address of the int 3 insn. eip_at_sig is the PC
+ after the exception, which should be the next insn along.
+ Hence: */
+ if (intaddr != NULL && eip_at_sig != NULL
+ && eip_at_sig == intaddr+1)
+ printf("PASS\n");
+ else
+ printf("FAIL\n");
+ return 0;
+}
Copied: branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stderr.exp (from rev 9616, branches/DARWIN/memcheck/tests/x86/int3-x86.stderr.exp)
===================================================================
Copied: branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stdout.exp (from rev 9616, branches/DARWIN/memcheck/tests/x86/int3-x86.stdout.exp)
===================================================================
--- branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stdout.exp (rev 0)
+++ branches/DARWIN/memcheck/tests/x86-linux/int3-x86.stdout.exp 2009-04-25 03:01:33 UTC (rev 9621)
@@ -0,0 +1,3 @@
+main
+in int_handler, EIP is ...
+PASS
Copied: branches/DARWIN/memcheck/tests/x86-linux/int3-x86.vgtest (from rev 9616, branches/DARWIN/memcheck/tests/x86/int3-x86.vgtest)
===================================================================
--- branches/DARWIN/memcheck/tests/x86-linux/int3-x86.vgtest (rev 0)
+++ branches/DARWIN/memcheck/tests/x86-linux/int3-x86.vgtest 2009-04-25 03:01:33 UTC (rev 9621)
@@ -0,0 +1,2 @@
+prog: int3-x86
+vgopts: -q
|