annotate test/runtime/7107135/Test.java @ 14094:3f27e57439ed

Truffle/Instrumentation: significant rearrangement (including moved class) and extension of the Truffle Instrumentation Framework. New interfaces include DebugContext (which can be attached to the ExecutionContext), through which access is provided to possibly language-specific (a) node instrumentation, (b) debug services manager, (c) notification when programs halt, (d) display of language values, and (e) display of variable identifiers.
author Michael Van De Vanter <michael.van.de.vanter@oracle.com>
date Mon, 03 Feb 2014 20:58:23 -0800
parents 9058789475af
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8710
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
1 /*
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
2 * Copyright (c) 2002-2013, Oracle and/or its affiliates. All rights reserved.
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
3 * Copyright (c) 2011 SAP AG. All Rights Reserved.
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
5 *
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
6 * This code is free software; you can redistribute it and/or modify it
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
7 * under the terms of the GNU General Public License version 2 only, as
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
8 * published by the Free Software Foundation.
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
9 *
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
10 * This code is distributed in the hope that it will be useful, but WITHOUT
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
13 * version 2 for more details (a copy is included in the LICENSE file that
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
14 * accompanied this code).
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
15 *
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
16 * You should have received a copy of the GNU General Public License version
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
17 * 2 along with this work; if not, write to the Free Software Foundation,
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
18 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
19 *
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
20 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
21 * or visit www.oracle.com if you need additional information or have any
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
22 * questions.
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
23 */
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
24
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
25 class Test {
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
26
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
27 static boolean loadLib(String libName){
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
28 try {
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
29 System.loadLibrary(libName);
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
30 System.out.println("Loaded library "+ libName + ".");
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
31 return true;
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
32 } catch (SecurityException e) {
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
33 System.out.println("loadLibrary(\"" + libName + "\") throws: " + e + "\n");
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
34 } catch (UnsatisfiedLinkError e) {
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
35 System.out.println("loadLibrary(\"" + libName + "\") throws: " + e + "\n");
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
36 }
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
37 return false;
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
38 }
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
39
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
40 public static int counter = 1;
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
41
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
42 static int Runner() {
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
43 counter = counter * -1;
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
44 int i = counter;
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
45 if(counter < 2) counter += Runner();
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
46 return i;
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
47 }
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
48
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
49 public static int run() {
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
50 try{
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
51 Runner();
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
52 } catch (StackOverflowError e) {
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
53 System.out.println("Caught stack overflow error.");
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
54 return 0;
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
55 } catch (OutOfMemoryError e) {
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
56 return 0;
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
57 }
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
58 return 2;
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
59 }
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
60
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
61 public static void main(String argv[]) {
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
62 loadLib(argv[0]);
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
63 System.exit(run());
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
64 }
9058789475af 7107135: Stack guard pages are no more protected after loading a shared library with executable stack
iklam
parents:
diff changeset
65 }