0

I wrote a gomoku program using alpha-beta search algorithm to determine next step. This is my evaluation function and connect3 and connect4:

public float positionEvaluation(Position p, boolean player){
    if(wonPosition(p, player))
        return Float.POSITIVE_INFINITY;
    if(wonPosition(p, !player))
        return Float.NEGATIVE_INFINITY;

    float ret = 0;
    GomokuPosition pos = (GomokuPosition)p;

    int[] myConnect4 = connect4(p, player);
    int[] enemyConnect4 = connect4(p, !player);
    int[] myConnect3 = connect3(p, player);
    int[] enemyConnect3 = connect3(p, !player);

    ret += myConnect4[2] * 1000;
    ret += myConnect4[1] * 100;
    ret += myConnect3[2] * 100;
    ret += myConnect3[1] * 10;

    ret -= enemyConnect4[2] * 1000;
    ret -= enemyConnect4[1] * 100;
    ret -= enemyConnect3[2] * 100;
    ret -= enemyConnect3[1] * 10;

    return ret;
}


private int[] connect4(Position p, boolean player) {
    GomokuPosition pos = (GomokuPosition)p;
    short b;
    if(player) b = GomokuPosition.HUMAN;
    else b = GomokuPosition.PROGRAM;

    int n[] = {0, 0, 0};

    for(int i = 0; i < pos.grid.length; i++) {
        for(int j = 0; j < pos.grid[0].length; j++) {
            if(i+3 < pos.grid.length) {
                if(pos.grid[i][j] == b
                        && pos.grid[i][j] == pos.grid[i+1][j]
                                && pos.grid[i][j] == pos.grid[i+2][j]
                                        && pos.grid[i][j] == pos.grid[i+3][j]) {
                    while(true) {
                        if(i+4 < pos.grid.length)
                            if(pos.grid[i+4][j] == b) break;
                        if(i-1 >= 0)
                            if(pos.grid[i-1][j] == b) break;
                        n[0]++;

                        if(i-1 >= 0 && i+4 >= pos.grid.length) {
                            if(pos.grid[i-1][j] == GomokuPosition.BLANK)
                                n[1]++;
                        }
                        else if(i-1 < 0 && i+4 < pos.grid.length) {
                            if(pos.grid[i+4][j] == GomokuPosition.BLANK)
                                n[1]++;
                        }
                        else if(i-1 >= 0 && i+4 < pos.grid.length) {
                            if(pos.grid[i-1][j] == GomokuPosition.BLANK 
                                    && pos.grid[i+4][j] != GomokuPosition.BLANK)
                                n[1]++;
                            if(pos.grid[i+4][j] == GomokuPosition.BLANK
                                    && pos.grid[i-1][j] != GomokuPosition.BLANK)
                                n[1]++;

                            if(pos.grid[i-1][j] == GomokuPosition.BLANK
                                    && pos.grid[i+4][j] == GomokuPosition.BLANK)
                                n[2]++;
                        }
                        break;
                    }
                }
            }

            if(j+3 < pos.grid[0].length) {
                if(pos.grid[i][j] == b
                        && pos.grid[i][j] == pos.grid[i][j+1]
                                && pos.grid[i][j] == pos.grid[i][j+2]
                                        && pos.grid[i][j] == pos.grid[i][j+3]) {
                    while(true) {
                        if(j+4 < pos.grid[0].length)
                            if(pos.grid[i][j+4] == b) break;
                        if(j-1 >= 0)
                            if(pos.grid[i][j-1] == b) break;
                        n[0]++;

                        if(j-1 >= 0 && j+4 >= pos.grid[0].length) {
                            if(pos.grid[i][j-1] == GomokuPosition.BLANK)
                                n[1]++;
                        }
                        else if(j-1 < 0 && j+4 < pos.grid[0].length) {
                            if(pos.grid[i][j+4] == GomokuPosition.BLANK)
                                n[1]++;
                        }
                        else if(j-1 >= 0 && j+4 < pos.grid[0].length) {
                            if(pos.grid[i][j-1] == GomokuPosition.BLANK 
                                    && pos.grid[i][j+4] != GomokuPosition.BLANK)
                                n[1]++;
                            if(pos.grid[i][j+4] == GomokuPosition.BLANK
                                    && pos.grid[i][j-1] != GomokuPosition.BLANK)
                                n[1]++;

                            if(pos.grid[i][j-1] == GomokuPosition.BLANK
                                    && pos.grid[i][j+4] == GomokuPosition.BLANK)
                                n[2]++;
                        }
                        break;
                    }
                }
            }

            if(i+3 < pos.grid.length && j+3 < pos.grid[0].length) {
                if(pos.grid[i][j] == b
                        && pos.grid[i][j] == pos.grid[i+1][j+1]
                                && pos.grid[i][j] == pos.grid[i+2][j+2]
                                        && pos.grid[i][j] == pos.grid[i+3][j+3]) {
                    while(true) {
                        if(i+4 < pos.grid.length && j+4 < pos.grid[0].length)
                            if(pos.grid[i+4][j+4] == b) break;
                        if(i-1 >= 0 && j-1 >= 0)
                            if(pos.grid[i-1][j-1] == b) break;
                        n[0]++;

                        if((i-1 >= 0 && j-1 >= 0) && (i+4 >= pos.grid.length || j+4 >= pos.grid[0].length)) {
                            if(pos.grid[i-1][j-1] == GomokuPosition.BLANK)
                                n[1]++;
                        }
                        else if((i-1 < 0 || j-1 < 0) && (i+4 < pos.grid.length && j+4 < pos.grid[0].length)) {
                            if(pos.grid[i+4][j+4] == GomokuPosition.BLANK)
                                n[1]++;
                        }
                        else if((i-1 >= 0 && j-1 >= 0) && (i+4 < pos.grid.length && j+4 < pos.grid[0].length)) {
                            if(pos.grid[i-1][j-1] == GomokuPosition.BLANK
                                    && pos.grid[i+4][j+4] != GomokuPosition.BLANK)
                                n[1]++;
                            if(pos.grid[i+4][j+4] == GomokuPosition.BLANK
                                    && pos.grid[i-1][j-1] != GomokuPosition.BLANK)
                                n[1]++;
                            if(pos.grid[i-1][j-1] == GomokuPosition.BLANK && pos.grid[i+4][j+4] == GomokuPosition.BLANK)
                                n[2]++;
                        }
                        break;
                    }
                }
            }

            if(i-3 >= 0 && j+3 < pos.grid[0].length) {
                if(pos.grid[i][j] == b
                        && pos.grid[i][j] == pos.grid[i-1][j+1]
                                && pos.grid[i][j] == pos.grid[i-2][j+2]
                                        && pos.grid[i][j] == pos.grid[i-3][j+3]) {
                    while(true) {
                        if(i-4 >= 0 && j+4 < pos.grid[0].length)
                            if(pos.grid[i-4][j+4] == b) break;
                        if(i+1 < pos.grid.length && j-1 >= 0)
                            if(pos.grid[i+1][j-1] == b) break;
                        n[0]++;

                        if((i-4 >= 0 && j+4 < pos.grid[0].length) && (i+1 >= pos.grid.length || j-1 < 0)) {
                            if(pos.grid[i-4][j+4] == GomokuPosition.BLANK)
                                n[1]++;
                        }
                        else if((i-4 < 0 || j+4 > pos.grid[0].length) && (i+1 < pos.grid.length && j-1 >= 0)) {
                            if(pos.grid[i+1][j-1] == GomokuPosition.BLANK)
                                n[1]++;
                        }
                        else if((i-4 >= 0 && j+4 < pos.grid[0].length) && (i+1 < pos.grid.length && j-1 >= 0)) {
                            if(pos.grid[i-4][j+4] == GomokuPosition.BLANK
                                    && pos.grid[i+1][j-1] != GomokuPosition.BLANK)
                                n[1]++;
                            if(pos.grid[i+1][j-1] == GomokuPosition.BLANK
                                    && pos.grid[i-4][j+4] != GomokuPosition.BLANK)
                                n[1]++;
                            if(pos.grid[i-4][j+4] == GomokuPosition.BLANK && pos.grid[i+1][j-1] == GomokuPosition.BLANK)
                                n[2]++;
                        }
                        break;
                    }
                }
            }
        }
    }
    return n;
}

connect4 and connect3 is methods return an int array store number of connect 4 and connect 3 in a line. The 1st element in this array is total number, and 2nd element is number of one open end, and 3rd is number of two open end. When I executing this program, java will give a fatal error:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000000250dbe6, pid=4188, tid=5744
#
# JRE version: 7.0_17-b02
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# J  Gomoku.connect4(LPosition;Z)[I
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\Tian\workspace\Gomoku\hs_err_pid4188.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

The crash occurring is related to the search depth and size of chess. When I set the search depth to a small number like 1 or 2, it will work few steps but crash after some steps. When I set search depth to 4 or 5, it will crash in the first step. What's the reason of this problem? PS. my operating system is windows 8 64bit. I tried run this program in windows xp and linux, it seems works well on these two system.

This is the error log:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000000250dbe6, pid=4188, tid=5744
#
# JRE version: 7.0_17-b02
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# J  Gomoku.connect4(LPosition;Z)[I
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x000000000cd93800):  JavaThread "AWT-EventQueue-0" [_thread_in_Java, id=5744, stack(0x000000000df00000,0x000000000e000000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x0000000bd790ffec

Registers:
RAX=0x0000000000000001, RBX=0x0000000000000001, RCX=0x00000000ffffffff, RDX=0x000000000000000f
RSP=0x000000000dffcd20, RBP=0x0000000000000003, RSI=0x000000000000000f, RDI=0x000000000000000f
R8 =0x000000000000000f, R9 =0x0000000000000006, R10=0x0000000000000007, R11=0x00000007d79100c0
R12=0x0000000000000000, R13=0x00000007d790ffe0, R14=0x0000000000000000, R15=0x000000000cd93800
RIP=0x000000000250dbe6, EFLAGS=0x0000000000010246

Top of Stack: (sp=0x000000000dffcd20)
0x000000000dffcd20:   0000000f00000001 000000020000000f
0x000000000dffcd30:   00000000faf21ffc 00000007d790ffd0
0x000000000dffcd40:   00000007d791c0c0 00000007d790ffe0
0x000000000dffcd50:   0000000400000003 0000000f0000000f
0x000000000dffcd60:   00000001ffffffff 0000000000000003
0x000000000dffcd70:   faf220240000000f 0000000bfaf2201e
0x000000000dffcd80:   0000000000000007 000000000dffce20
0x000000000dffcd90:   00000007d7910090 00000007d791c060
0x000000000dffcda0:   000000000000000f 000000000249e2ec
0x000000000dffcdb0:   000000000dffce20 00000000024863d3
0x000000000dffcdc0:   00000000024863d3 0000000000000000
0x000000000dffcdd0:   00000007d790ffd0 00000007d888a550
0x000000000dffcde0:   000000000dffcde0 000000077dc530b8
0x000000000dffcdf0:   000000000dffce68 000000077dcd8b08
0x000000000dffce00:   0000000000000000 000000077dc53150
0x000000000dffce10:   000000000dffcdc8 000000000dffce58 

Instructions: (pc=0x000000000250dbe6)
0x000000000250dbc6:   44 89 5c 24 5c 4f 8d 1c d4 44 8b 54 24 30 41 83
0x000000000250dbd6:   c2 04 44 89 54 24 60 45 85 f6 0f 8c 52 09 00 00
0x000000000250dbe6:   45 8b 54 8d 10 44 89 54 24 64 44 8b 54 24 30 47
0x000000000250dbf6:   8b 54 95 0c 44 89 54 24 68 47 8b 54 b5 10 44 89 


Register to memory mapping:

RAX=0x0000000000000001 is an unknown value
RBX=0x0000000000000001 is an unknown value
RCX=0x00000000ffffffff is an unknown value
RDX=0x000000000000000f is an unknown value
RSP=0x000000000dffcd20 is pointing into the stack for thread: 0x000000000cd93800
RBP=0x0000000000000003 is an unknown value
RSI=0x000000000000000f is an unknown value
RDI=0x000000000000000f is an unknown value
R8 =0x000000000000000f is an unknown value
R9 =0x0000000000000006 is an unknown value
R10=0x0000000000000007 is an unknown value
R11=0x00000007d79100c0 is an oop
[S 
 - klass: {type array short}
 - length: 15
R12=0x0000000000000000 is an unknown value
R13=0x00000007d790ffe0 is an oop
[[S 
 - klass: {type array short}[]
 - length: 15
R14=0x0000000000000000 is an unknown value
R15=0x000000000cd93800 is a thread


Stack: [0x000000000df00000,0x000000000e000000],  sp=0x000000000dffcd20,  free space=1011k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
J  Gomoku.connect4(LPosition;Z)[I


---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x000000000cdfa800 JavaThread "TimerQueue" daemon [_thread_blocked, id=3656, stack(0x000000000e4d0000,0x000000000e5d0000)]
  0x000000000237d800 JavaThread "DestroyJavaVM" [_thread_blocked, id=5420, stack(0x0000000002230000,0x0000000002330000)]
=>0x000000000cd93800 JavaThread "AWT-EventQueue-0" [_thread_in_Java, id=5744, stack(0x000000000df00000,0x000000000e000000)]
  0x000000000cd03800 JavaThread "AWT-Windows" daemon [_thread_in_native, id=1728, stack(0x000000000d880000,0x000000000d980000)]
  0x000000000cd03000 JavaThread "AWT-Shutdown" [_thread_blocked, id=2348, stack(0x000000000d780000,0x000000000d880000)]
  0x000000000b2f3000 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=1980, stack(0x000000000d680000,0x000000000d780000)]
  0x000000000b2cc800 JavaThread "Service Thread" daemon [_thread_blocked, id=3496, stack(0x000000000ca70000,0x000000000cb70000)]
  0x000000000b2c8800 JavaThread "C2 CompilerThread1" daemon [_thread_blocked, id=7612, stack(0x000000000c970000,0x000000000ca70000)]
  0x000000000b2bf800 JavaThread "C2 CompilerThread0" daemon [_thread_blocked, id=980, stack(0x000000000c870000,0x000000000c970000)]
  0x000000000b2bc800 JavaThread "Attach Listener" daemon [_thread_blocked, id=7984, stack(0x000000000c770000,0x000000000c870000)]
  0x000000000b2bb800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=1116, stack(0x000000000c670000,0x000000000c770000)]
  0x000000000b255000 JavaThread "Finalizer" daemon [_thread_blocked, id=4120, stack(0x000000000c570000,0x000000000c670000)]
  0x000000000b24c800 JavaThread "Reference Handler" daemon [_thread_blocked, id=6724, stack(0x000000000c470000,0x000000000c570000)]

Other Threads:
  0x000000000b243000 VMThread [stack: 0x000000000c370000,0x000000000c470000] [id=6708]
  0x000000000b2e5000 WatcherThread [stack: 0x000000000cb70000,0x000000000cc70000] [id=4464]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 PSYoungGen      total 37376K, used 25504K [0x00000007d6400000, 0x00000007dad00000, 0x0000000800000000)
  eden space 32064K, 68% used [0x00000007d6400000,0x00000007d7991a90,0x00000007d8350000)
  from space 5312K, 64% used [0x00000007d8880000,0x00000007d8bd6610,0x00000007d8db0000)
  to   space 5312K, 0% used [0x00000007d8350000,0x00000007d8350000,0x00000007d8880000)
 ParOldGen       total 85504K, used 0K [0x0000000782c00000, 0x0000000787f80000, 0x00000007d6400000)
  object space 85504K, 0% used [0x0000000782c00000,0x0000000782c00000,0x0000000787f80000)
 PSPermGen       total 21248K, used 8260K [0x000000077da00000, 0x000000077eec0000, 0x0000000782c00000)
  object space 21248K, 38% used [0x000000077da00000,0x000000077e2113d8,0x000000077eec0000)

Card table byte_map: [0x0000000005540000,0x0000000005960000] byte_map_base: 0x0000000001953000

Polling page: 0x0000000000aa0000

Code Cache  [0x0000000002480000, 0x00000000026f0000, 0x0000000005480000)
 total_blobs=395 nmethods=14 adapters=333 free_code_cache=48613Kb largest_free_block=49726528

Compilation events (10 events):
Event: 2.242 Thread 0x000000000b2c8800   10             Gomoku::connect4 (1887 bytes)
Event: 2.258 Thread 0x000000000b2bf800 nmethod 9 0x0000000002503e50 code [0x0000000002503fe0, 0x0000000002505298]
Event: 2.271 Thread 0x000000000b2bf800   11             Gomoku::possibleMoves (186 bytes)
Event: 2.291 Thread 0x000000000b2bf800 nmethod 11 0x0000000002500b90 code [0x0000000002500d20, 0x0000000002501608]
Event: 2.291 Thread 0x000000000b2bf800   12             GomokuPosition::<init> (21 bytes)
Event: 2.295 Thread 0x000000000b2bf800 nmethod 12 0x0000000002501fd0 code [0x0000000002502100, 0x0000000002502398]
Event: 2.295 Thread 0x000000000b2bf800   13             Position::<init> (5 bytes)
Event: 2.295 Thread 0x000000000b2bf800 nmethod 13 0x0000000002502490 code [0x00000000025025c0, 0x0000000002502618]
Event: 2.378 Thread 0x000000000b2bf800   14             Gomoku::drawnPosition (59 bytes)
Event: 2.380 Thread 0x000000000b2bf800 nmethod 14 0x00000000024fe690 code [0x00000000024fe7e0, 0x00000000024fe978]

GC Heap History (4 events):
Event: 2.309 GC heap before
{Heap before GC invocations=1 (full 0):
 PSYoungGen      total 37376K, used 32064K [0x00000007d6400000, 0x00000007d8db0000, 0x0000000800000000)
  eden space 32064K, 100% used [0x00000007d6400000,0x00000007d8350000,0x00000007d8350000)
  from space 5312K, 0% used [0x00000007d8880000,0x00000007d8880000,0x00000007d8db0000)
  to   space 5312K, 0% used [0x00000007d8350000,0x00000007d8350000,0x00000007d8880000)
 ParOldGen       total 85504K, used 0K [0x0000000782c00000, 0x0000000787f80000, 0x00000007d6400000)
  object space 85504K, 0% used [0x0000000782c00000,0x0000000782c00000,0x0000000787f80000)
 PSPermGen       total 21248K, used 8258K [0x000000077da00000, 0x000000077eec0000, 0x0000000782c00000)
  object space 21248K, 38% used [0x000000077da00000,0x000000077e210b90,0x000000077eec0000)
Event: 2.313 GC heap after
Heap after GC invocations=1 (full 0):
 PSYoungGen      total 37376K, used 3385K [0x00000007d6400000, 0x00000007d8db0000, 0x0000000800000000)
  eden space 32064K, 0% used [0x00000007d6400000,0x00000007d6400000,0x00000007d8350000)
  from space 5312K, 63% used [0x00000007d8350000,0x00000007d869e610,0x00000007d8880000)
  to   space 5312K, 0% used [0x00000007d8880000,0x00000007d8880000,0x00000007d8db0000)
 ParOldGen       total 85504K, used 0K [0x0000000782c00000, 0x0000000787f80000, 0x00000007d6400000)
  object space 85504K, 0% used [0x0000000782c00000,0x0000000782c00000,0x0000000787f80000)
 PSPermGen       total 21248K, used 8258K [0x000000077da00000, 0x000000077eec0000, 0x0000000782c00000)
  object space 21248K, 38% used [0x000000077da00000,0x000000077e210b90,0x000000077eec0000)
}
Event: 2.346 GC heap before
{Heap before GC invocations=2 (full 0):
 PSYoungGen      total 37376K, used 35449K [0x00000007d6400000, 0x00000007d8db0000, 0x0000000800000000)
  eden space 32064K, 100% used [0x00000007d6400000,0x00000007d8350000,0x00000007d8350000)
  from space 5312K, 63% used [0x00000007d8350000,0x00000007d869e610,0x00000007d8880000)
  to   space 5312K, 0% used [0x00000007d8880000,0x00000007d8880000,0x00000007d8db0000)
 ParOldGen       total 85504K, used 0K [0x0000000782c00000, 0x0000000787f80000, 0x00000007d6400000)
  object space 85504K, 0% used [0x0000000782c00000,0x0000000782c00000,0x0000000787f80000)
 PSPermGen       total 21248K, used 8258K [0x000000077da00000, 0x000000077eec0000, 0x0000000782c00000)
  object space 21248K, 38% used [0x000000077da00000,0x000000077e210b90,0x000000077eec0000)
Event: 2.349 GC heap after
Heap after GC invocations=2 (full 0):
 PSYoungGen      total 37376K, used 3417K [0x00000007d6400000, 0x00000007dad00000, 0x0000000800000000)
  eden space 32064K, 0% used [0x00000007d6400000,0x00000007d6400000,0x00000007d8350000)
  from space 5312K, 64% used [0x00000007d8880000,0x00000007d8bd6610,0x00000007d8db0000)
  to   space 5312K, 0% used [0x00000007d8350000,0x00000007d8350000,0x00000007d8880000)
 ParOldGen       total 85504K, used 0K [0x0000000782c00000, 0x0000000787f80000, 0x00000007d6400000)
  object space 85504K, 0% used [0x0000000782c00000,0x0000000782c00000,0x0000000787f80000)
 PSPermGen       total 21248K, used 8258K [0x000000077da00000, 0x000000077eec0000, 0x0000000782c00000)
  object space 21248K, 38% used [0x000000077da00000,0x000000077e210b90,0x000000077eec0000)
}

Deoptimization events (0 events):
No events

Internal exceptions (10 events):
Event: 0.108 Thread 0x000000000237d800 Threw 0x00000007d6462160 at C:\jdk7u2_64p\jdk7u17\hotspot\src\share\vm\prims\jni.cpp:716
Event: 0.171 Thread 0x000000000237d800 Threw 0x00000007d646f188 at C:\jdk7u2_64p\jdk7u17\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 0.214 Thread 0x000000000237d800 Threw 0x00000007d6482b58 at C:\jdk7u2_64p\jdk7u17\hotspot\src\share\vm\prims\jni.cpp:716
Event: 0.348 Thread 0x000000000237d800 Threw 0x00000007d65a0288 at C:\jdk7u2_64p\jdk7u17\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 0.362 Thread 0x000000000237d800 Threw 0x00000007d65a2280 at C:\jdk7u2_64p\jdk7u17\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 0.369 Thread 0x000000000237d800 Threw 0x00000007d65a4190 at C:\jdk7u2_64p\jdk7u17\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 0.456 Thread 0x000000000237d800 Threw 0x00000007d668dbd0 at C:\jdk7u2_64p\jdk7u17\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 0.456 Thread 0x000000000237d800 Threw 0x00000007d668dcf8 at C:\jdk7u2_64p\jdk7u17\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 0.457 Thread 0x000000000237d800 Threw 0x00000007d6691300 at C:\jdk7u2_64p\jdk7u17\hotspot\src\share\vm\prims\jvm.cpp:1166
Event: 0.457 Thread 0x000000000237d800 Threw 0x00000007d6691428 at C:\jdk7u2_64p\jdk7u17\hotspot\src\share\vm\prims\jvm.cpp:1166

Events (10 events):
Event: 1.536 loading class 0x000000000b2fb8a0
Event: 1.536 loading class 0x000000000b2fb8a0 done
Event: 1.537 loading class 0x000000000cd25c30
Event: 1.537 loading class 0x000000000cd25c30 done
Event: 2.232 loading class 0x000000000b198d50
Event: 2.232 loading class 0x000000000b198d50 done
Event: 2.309 Executing VM operation: ParallelGCFailedAllocation
Event: 2.313 Executing VM operation: ParallelGCFailedAllocation done
Event: 2.346 Executing VM operation: ParallelGCFailedAllocation
Event: 2.349 Executing VM operation: ParallelGCFailedAllocation done


Dynamic libraries:
0x000007f796ef0000 - 0x000007f796f23000     C:\Program Files\Java\jre7\bin\javaw.exe
0x000007f8e1720000 - 0x000007f8e18de000     C:\windows\SYSTEM32\ntdll.dll
0x000007f8df280000 - 0x000007f8df3b6000     C:\windows\system32\KERNEL32.DLL
0x000007f8de6f0000 - 0x000007f8de7e3000     C:\windows\system32\KERNELBASE.dll
0x000007f8e1110000 - 0x000007f8e11ee000     C:\windows\system32\ADVAPI32.dll
0x000007f8e0fc0000 - 0x000007f8e110c000     C:\windows\system32\USER32.dll
0x000007f8dd6f0000 - 0x000007f8dd959000     C:\windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9200.16384_none_418c2a697189c07f\COMCTL32.dll
0x000007f8e07e0000 - 0x000007f8e0885000     C:\windows\system32\msvcrt.dll
0x000007f8e06a0000 - 0x000007f8e06e8000     C:\windows\SYSTEM32\sechost.dll
0x000007f8e08f0000 - 0x000007f8e0a30000     C:\windows\system32\RPCRT4.dll
0x000007f8e0c50000 - 0x000007f8e0d90000     C:\windows\system32\GDI32.dll
0x000007f8e0d90000 - 0x000007f8e0dc9000     C:\windows\system32\IMM32.DLL
0x000007f8e0ea0000 - 0x000007f8e0fb5000     C:\windows\system32\MSCTF.dll
0x000000006f1f0000 - 0x000000006f2c1000     C:\Program Files\Java\jre7\bin\msvcr100.dll
0x000000006ead0000 - 0x000000006f1ef000     C:\Program Files\Java\jre7\bin\server\jvm.dll
0x000007f8d5830000 - 0x000007f8d5839000     C:\windows\SYSTEM32\WSOCK32.dll
0x000007f8d9200000 - 0x000007f8d9220000     C:\windows\SYSTEM32\WINMM.dll
0x000007f8e06f0000 - 0x000007f8e06f7000     C:\windows\system32\PSAPI.DLL
0x000007f8e0890000 - 0x000007f8e08e8000     C:\windows\system32\WS2_32.dll
0x000007f8d91c0000 - 0x000007f8d91f2000     C:\windows\SYSTEM32\WINMMBASE.dll
0x000007f8e07d0000 - 0x000007f8e07d9000     C:\windows\system32\NSI.dll
0x000000006fef0000 - 0x000000006feff000     C:\Program Files\Java\jre7\bin\verify.dll
0x000000006eaa0000 - 0x000000006eac8000     C:\Program Files\Java\jre7\bin\java.dll
0x000000006ea80000 - 0x000000006ea95000     C:\Program Files\Java\jre7\bin\zip.dll
0x000000006e8a0000 - 0x000000006ea33000     C:\Program Files\Java\jre7\bin\awt.dll
0x000007f8e0dd0000 - 0x000007f8e0e93000     C:\windows\system32\OLEAUT32.dll
0x000007f8e0a30000 - 0x000007f8e0be0000     C:\windows\system32\combase.dll
0x000007f8d78a0000 - 0x000007f8d793f000     C:\windows\system32\apphelp.dll
0x000007f8dc390000 - 0x000007f8dc3b1000     C:\windows\system32\DWMAPI.DLL
0x000007f8dce70000 - 0x000007f8dcf56000     C:\windows\system32\uxtheme.dll
0x000007f8deb30000 - 0x000007f8decae000     C:\windows\system32\ole32.dll
0x000007f8de510000 - 0x000007f8de51a000     C:\windows\SYSTEM32\CRYPTBASE.dll
0x000007f8de4b0000 - 0x000007f8de50c000     C:\windows\SYSTEM32\bcryptPrimitives.dll
0x000007f8df3c0000 - 0x000007f8e069e000     C:\windows\system32\SHELL32.dll
0x000007f8e1530000 - 0x000007f8e1580000     C:\windows\system32\SHLWAPI.dll
0x000007f8dd240000 - 0x000007f8dd2d6000     C:\windows\SYSTEM32\shcore.dll
0x000000006e860000 - 0x000000006e894000     C:\Program Files\Java\jre7\bin\fontmanager.dll
0x000007f8c9cd0000 - 0x000007f8c9d0f000     C:\Program Files\ThinkPad\Bluetooth Software\btmmhook.dll
0x000000006ea60000 - 0x000000006ea79000     C:\Program Files\Java\jre7\bin\net.dll
0x000007f8dde40000 - 0x000007f8dde9c000     C:\windows\system32\mswsock.dll
0x000000006ea40000 - 0x000000006ea51000     C:\Program Files\Java\jre7\bin\nio.dll
0x000000006e810000 - 0x000000006e851000     C:\Program Files\Java\jre7\bin\t2k.dll

VM Arguments:
jvm_args: -Dfile.encoding=Cp1252 
java_command: Gomoku
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\ThinkPad\Bluetooth Software\;C:\Program Files\ThinkPad\Bluetooth Software\syswow64;C:\Program Files\Diskeeper Corporation\ExpressCache\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\ProgramData\Lenovo\ReadyApps;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\
USERNAME=Tian
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 58 Stepping 9, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows 8 , 64 bit Build 9200 

CPU:total 4 (2 cores per cpu, 2 threads per core) family 6 model 58 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, ht, tsc, tscinvbit, tscinv

Memory: 4k page, physical 8203168k(5333784k free), swap 9448352k(5929728k free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (23.7-b01) for windows-amd64 JRE (1.7.0_17-b02), built on Mar  1 2013 03:38:30 by "java_re" with unknown MS VC++:1600

time: Fri Apr 12 17:36:31 2013
elapsed time: 2 seconds
Tian
  • 397
  • 2
  • 9
  • 16
  • Have you looked at C:\Users\Tian\workspace\Gomoku\hs_err_pid4188.log ? – Nick Apr 12 '13 at 21:58
  • I read it, but it's too long, so I can't post it all here. @Nick – Tian Apr 12 '13 at 22:00
  • Are you able to compile and run a "Hello World" program on your machine? – Nick Apr 12 '13 at 22:24
  • Of course I can. @Nick – Tian Apr 12 '13 at 22:25
  • And I presume you don't get a normal stack trace, just this fatal error... It sounds like your algorithm might be too much for your computer to handle, but normally if your JVM runs out of memory, it tells you so. I'm not sure what's going on here, I would recommend posting the code of connect3 and connect4. – Nick Apr 12 '13 at 22:34
  • I have posted connect4. connect3 is similar to connect4. Since it is too long, I did't post it. @Nick – Tian Apr 12 '13 at 22:44
  • Pretty sure I've seen this in some infinite recursion scenarios. – Hot Licks Apr 12 '13 at 23:10

2 Answers2

0

This might be a bug in the JVM: http://java.com/en/download/help/exception_access.xml . See also: Possible causes of Java VM EXCEPTION_ACCESS_VIOLATION? . I hope that helps.

Community
  • 1
  • 1
Nick
  • 2,827
  • 4
  • 29
  • 39
0

We also spent a lot of time with this problem when we had failed our NetBeans platform application with JavaFX components. The solution was to copy jfxrt.jar into ..platform/lib directory. It's pity that platform didn't say that in the error message.

etan
  • 1