vjurenka / bwmirror Goto Github PK
View Code? Open in Web Editor NEWBWMirror API source files
License: Other
BWMirror API source files
License: Other
The current version of the online JavaDoc is out of sync with the library contents:
I will go and list any additional findings here, too, if that is OK. Will setup a pull request as soon as possible.
Class | JavaDoc | Library |
---|---|---|
Unit.java |
java public boolean isUnpowered() |
java public boolean isPowered() |
Hi!
I'm starting to use BWMirror v1.2 but I can't find out how to get which UnitType can produce a given UnitType.
I think it would be UnitType.whatBuilds() in BWAPI, but I can't find the corresponding method in BWMirror.
What am I missing?
Hello,
Quick run-down of my setup in case that becomes relevant I'm running:
64 bit Ubuntu 14.04 with an i7-4510U
I have the 32 bit version of eclipse.
While following the tutorial, I came across the error: "BWMirror API supports only x86 architecture." The FAQ states that it's because I don't have the 32 bit version of the jre installed. That was originally true, but I have since installed the 32 bit version, pointed eclipse to it as suggested. The problem persists, even after un-installing the 64bit jre, and setting the run configuration to include "-d32" which causes no issues(-d64 gives : "Error: This Java instance does not support a 64-bit JVM."). So I'm fairly confident that I am using the 32bit version of the jre. I went and found the section of code that is checking the version:
String arch = System.getProperty("os.arch");
String dllNames[] = {"bwapi_bridge" + VERSION, "libgmp-10", "libmpfr-4"};
if(!arch.equals("x86")){
throw new UnsupportedOperationException("BWMirror API supports only x86 architecture.");
}
When printing System.getProperty("os.arch"); on my system and it prints out "i386". This explains why it's throwing the error. However when looking at the Configuration tab from (Help->About Eclipse-> Installation Details) there is some potentially relevant information:
__wbp.linux.disableScreenshotWorkarounds=false
applicationXMI=org.eclipse.ui.workbench/LegacyIDE.e4xmi
awt.toolkit=sun.awt.X11.XToolkit
eclipse.application=org.eclipse.ui.ide.workbench
eclipse.buildId=4.5.2.M20160212-1500
eclipse.commands=-os
linux
-ws
gtk
-arch
x86
Specifically it lists -arch with x86 when printing System.getProperty("os.arch") is giving me i386. I'm not sure if there is something wrong with my installation or if the check for the os.arch needs to be more general.
Update: An odd work around I came up with was adding the below code in main.
System.setProperty("os.arch", "x86");
However that just lead to a new error which I'll post here because I'm not sure if it's relevant.
Exception in thread "main" java.lang.UnsatisfiedLinkError: no bwapi_bridge2_5 in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at bwapi.Mirror.<clinit>(Mirror.java:92)
at TestBot1.<init>(TestBot1.java:7)
at TestBot1.main(TestBot1.java:89)
I use last version BWMirror 2.2
For some reason two methods hasCreep(TilePosition)
and canBuildHere(TilePosition, UnitType)
return false for me.
I try to find position with creep or position for build something.
BWMirrot 1.2 works good with the same code.
Maybe it is BWAPI bug?
TilePosition t = hive.startLocations.get(7); // array with TilePosition
game.drawBoxMap(t.getX(), t.getY(), t.getX() + 20, t.getY() + 20, Color.Cyan);
game.drawTextMap(t.getX(), t.getY(), "Can build? " + game.canBuildHere(t, UnitType.Zerg_Spawning_Pool));
game.drawTextMap(t.getX(), t.getY(), "Has Creep? " + game.hasCreep(t.getX(), t.getY()));
In Eclipse 4.4.2 running Java SE 1.8 with Mirror version 2.5 and BWAPI version 4.1.2 on Windows 7 x64.
Exception in thread "main" java.lang.UnsatisfiedLinkError: bwapi.UnitType.toString_native(J)Ljava/lang/String;
at bwapi.UnitType.toString_native(Native Method)
at bwapi.UnitType.toString(UnitType.java:19)
at TestBot1.main(TestBot1.java:973)
Line 973 of TestBot1.java is:
System.out.println(UnitType.Zerg_Zergling.toString());
Being able to print UnitType without running it through a self-made switch case would be useful for debugging purposes.
Strangely enough, when I take an actual unit in game and attempt to print its unit type, things are OK. For instance, the line below works.
System.out.println("New unit " + unit.getType());
It seems that whenever a game reaches a large number of units the JVM will at some point crash if the bwapi.Game.canBuildHere(JLbwapi/TilePosition;Lbwapi/UnitType;Lbwapi/Unit;) function is called. My code checks to make sure that all parameters passed to the function are valid. None of the parameters are null, the Unit exists, and the TilePosition is within the map boundaries. This only happens in large games such as a 3 vs 3 or 4 vs 4 with usually 500+ units existing on the map and potentially into the thousands which have existed at some point in the game. My bot did not have this issue with BWAPI 3.7.4 version of BWMirror so I suspect it may be a BWAPI 4 issue, though, I'm not sure. The most recent crash occurred when the function was passed a TilePosition at (116,6) (The map is 256x256), UnitType.Zerg_Creep_Colony, and a Zerg_Drone with unit ID 1497. I can provide more information, code, or the map if it would be helpful.
Here is the JVM log from the most recent crash:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6fb8196c, pid=3208, tid=8464
#
# JRE version: Java(TM) SE Runtime Environment (8.0_40-b26) (build 1.8.0_40-b26)
# Java VM: Java HotSpot(TM) Client VM (25.40-b25 mixed mode windows-x86 )
# Problematic frame:
# C [bwapi_bridge2_3.dll+0x3196c]
#
# 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.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- T H R E A D ---------------
Current thread (0x00dcc400): JavaThread "main" [_thread_in_native, id=8464, stack(0x00ee0000,0x00f30000)]
siginfo: ExceptionCode=0xc0000005, reading address 0x00000010
Registers:
EAX=0x00000000, EBX=0x00000e80, ECX=0x00f2d4cc, EDX=0x00000000
ESP=0x00f2d404, EBP=0x00f2d52c, ESI=0x00f2d49c, EDI=0x00000000
EIP=0x6fb8196c, EFLAGS=0x00010246
Top of Stack: (sp=0x00f2d404)
0x00f2d404: 00000000 54fd4cbb 6fd3633c 00f2d650
0x00f2d414: 00f2d5cc 00000074 00f2d4a0 48090338
0x00f2d424: 00e0c598 00000074 00000000 00dcc400
0x00f2d434: 00f2d420 00f2d5bc 00000006 00000076
0x00f2d444: 00000ec0 00000006 00f2d55c 00000e80
0x00f2d454: 000000c0 47c10260 00000001 003e5078
0x00f2d464: 003e50b8 003e50b8 00000007 00000008
0x00f2d474: 3f800000 000000f7 00000100 00000000
Instructions: (pc=0x6fb8196c)
0x6fb8194c: 00 00 15 8b 8c 24 d4 00 00 00 85 c9 74 20 8b 11
0x6fb8195c: 8d 84 24 c4 00 00 00 3b c8 0f 95 c0 0f b6 c0 50
0x6fb8196c: ff 52 10 c7 84 24 d4 00 00 00 00 00 00 00 c6 84
0x6fb8197c: 24 ac 01 00 00 16 8b 8c 24 04 01 00 00 85 c9 74
Register to memory mapping:
EAX=0x00000000 is an unknown value
EBX=0x00000e80 is an unknown value
ECX=0x00f2d4cc is pointing into the stack for thread: 0x00dcc400
EDX=0x00000000 is an unknown value
ESP=0x00f2d404 is pointing into the stack for thread: 0x00dcc400
EBP=0x00f2d52c is pointing into the stack for thread: 0x00dcc400
ESI=0x00f2d49c is pointing into the stack for thread: 0x00dcc400
EDI=0x00000000 is an unknown value
Stack: [0x00ee0000,0x00f30000], sp=0x00f2d404, free space=309k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [bwapi_bridge2_3.dll+0x3196c]
C [bwapi_bridge2_3.dll+0x1ea370]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j bwapi.Game.canBuildHere_native(JLbwapi/TilePosition;Lbwapi/UnitType;Lbwapi/Unit;)Z+0
j bwapi.Game.canBuildHere(Lbwapi/TilePosition;Lbwapi/UnitType;Lbwapi/Unit;)Z+8
j production.Builder.canBuildHere(Lproduction/Tile;)Z+393
J 324 C1 production.Builder.getNear(Lproduction/Tile;)Lproduction/Tile; (121 bytes) @ 0x02853518 [0x02853420+0xf8]
j production.Builder.getMorphTile(Lproduction/Tile;)Lproduction/Tile;+138
j production.Builder.<init>(Levent/Base;Lbwapi/Unit;Lproduction/BuildRequest;Lproduction/Tile;)V+120
J 342 C1 production.BuildRequest.requestBuild(Levent/Base;)Z (2131 bytes) @ 0x0285aa94 [0x02858bb0+0x1ee4]
j composition.ExpansionSetup.buildNext(Levent/Base;)V+13
J 199 C1 event.Base.onFrame()V (141 bytes) @ 0x0282664c [0x02826440+0x20c]
J 202 C1 event.StarcraftListener.onFrame()V (290 bytes) @ 0x02828664 [0x028280f0+0x574]
J 215 C1 bwapi.AIModule.onFrame()V (17 bytes) @ 0x0282de08 [0x0282ddd0+0x38]
v ~StubRoutines::call_stub
j bwapi.Mirror.startGame()V+0
j event.StarcraftListener.run()V+15
j event.StarcraftListener.main([Ljava/lang/String;)V+7
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x45053800 JavaThread "Service Thread" daemon [_thread_blocked, id=7184, stack(0x45bb0000,0x45c00000)]
0x4503dc00 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=6732, stack(0x45ab0000,0x45b00000)]
0x45035c00 JavaThread "JDWP Command Reader" daemon [_thread_in_native, id=7152, stack(0x459e0000,0x45a30000)]
0x45034c00 JavaThread "JDWP Event Helper Thread" daemon [_thread_blocked, id=8884, stack(0x45830000,0x45880000)]
0x45033800 JavaThread "JDWP Transport Listener: dt_socket" daemon [_thread_blocked, id=6352, stack(0x45340000,0x45390000)]
0x45025400 JavaThread "Attach Listener" daemon [_thread_blocked, id=6952, stack(0x452f0000,0x45340000)]
0x4502d800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=4100, stack(0x00d60000,0x00db0000)]
0x44ff4400 JavaThread "Finalizer" daemon [_thread_blocked, id=7612, stack(0x45260000,0x452b0000)]
0x44fee000 JavaThread "Reference Handler" daemon [_thread_blocked, id=8872, stack(0x04760000,0x047b0000)]
=>0x00dcc400 JavaThread "main" [_thread_in_native, id=8464, stack(0x00ee0000,0x00f30000)]
Other Threads:
0x44fea400 VMThread [stack: 0x00c50000,0x00ca0000] [id=8800]
0x45055000 WatcherThread [stack: 0x45890000,0x458e0000] [id=7284]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap:
def new generation total 4928K, used 2514K [0x04800000, 0x04d50000, 0x19d50000)
eden space 4416K, 56% used [0x04800000, 0x04a6bde8, 0x04c50000)
from space 512K, 6% used [0x04cd0000, 0x04cd8b70, 0x04d50000)
to space 512K, 0% used [0x04c50000, 0x04c50000, 0x04cd0000)
tenured generation total 10944K, used 3636K [0x19d50000, 0x1a800000, 0x44800000)
the space 10944K, 33% used [0x19d50000, 0x1a0dd388, 0x1a0dd400, 0x1a800000)
Metaspace used 2319K, capacity 2754K, committed 2880K, reserved 4480K
Card table byte_map: [0x44800000,0x44a10000] byte_map_base: 0x447dc000
Polling page: 0x00170000
CodeCache: size=32768Kb used=1308Kb max_used=1308Kb free=31459Kb
bounds [0x02740000, 0x02888000, 0x04740000]
total_blobs=561 nmethods=419 adapters=81
compilation: enabled
Compilation events (10 events):
Event: 588.941 Thread 0x4503dc00 414 composition.Necessities::getPriorityRequest (430 bytes)
Event: 588.944 Thread 0x4503dc00 nmethod 414 0x028829c8 code [0x02882d70, 0x028841d0]
Event: 620.474 Thread 0x4503dc00 415 combat.AirInvasionBrigade::readyToAttack (97 bytes)
Event: 620.475 Thread 0x4503dc00 nmethod 415 0x02885b48 code [0x02885c70, 0x02885ec8]
Event: 635.856 Thread 0x4503dc00 416 bwapi.WeaponType::get (53 bytes)
Event: 635.856 Thread 0x4503dc00 nmethod 416 0x02886148 code [0x02886280, 0x02886430]
Event: 650.456 Thread 0x4503dc00 418 composition.Necessities::isComplete (12 bytes)
Event: 650.457 Thread 0x4503dc00 nmethod 418 0x028867c8 code [0x028868d0, 0x0288698c]
Event: 714.124 Thread 0x4503dc00 421 event.StrategySelector::hasNecessities (46 bytes)
Event: 714.124 Thread 0x4503dc00 nmethod 421 0x02886f08 code [0x02887020, 0x02887158]
GC Heap History (10 events):
Event: 832.495 GC heap before
{Heap before GC invocations=1018 (full 0):
def new generation total 4928K, used 4445K [0x04800000, 0x04d50000, 0x19d50000)
eden space 4416K, 100% used [0x04800000, 0x04c50000, 0x04c50000)
from space 512K, 5% used [0x04c50000, 0x04c57520, 0x04cd0000)
to space 512K, 0% used [0x04cd0000, 0x04cd0000, 0x04d50000)
tenured generation total 10944K, used 3627K [0x19d50000, 0x1a800000, 0x44800000)
the space 10944K, 33% used [0x19d50000, 0x1a0dafe8, 0x1a0db000, 0x1a800000)
Metaspace used 2319K, capacity 2754K, committed 2880K, reserved 4480K
Event: 832.495 GC heap after
Heap after GC invocations=1019 (full 0):
def new generation total 4928K, used 30K [0x04800000, 0x04d50000, 0x19d50000)
eden space 4416K, 0% used [0x04800000, 0x04800000, 0x04c50000)
from space 512K, 5% used [0x04cd0000, 0x04cd79f8, 0x04d50000)
to space 512K, 0% used [0x04c50000, 0x04c50000, 0x04cd0000)
tenured generation total 10944K, used 3629K [0x19d50000, 0x1a800000, 0x44800000)
the space 10944K, 33% used [0x19d50000, 0x1a0db750, 0x1a0db800, 0x1a800000)
Metaspace used 2319K, capacity 2754K, committed 2880K, reserved 4480K
}
Event: 832.989 GC heap before
{Heap before GC invocations=1019 (full 0):
def new generation total 4928K, used 4446K [0x04800000, 0x04d50000, 0x19d50000)
eden space 4416K, 100% used [0x04800000, 0x04c50000, 0x04c50000)
from space 512K, 5% used [0x04cd0000, 0x04cd79f8, 0x04d50000)
to space 512K, 0% used [0x04c50000, 0x04c50000, 0x04cd0000)
tenured generation total 10944K, used 3629K [0x19d50000, 0x1a800000, 0x44800000)
the space 10944K, 33% used [0x19d50000, 0x1a0db750, 0x1a0db800, 0x1a800000)
Metaspace used 2319K, capacity 2754K, committed 2880K, reserved 4480K
Event: 832.990 GC heap after
Heap after GC invocations=1020 (full 0):
def new generation total 4928K, used 31K [0x04800000, 0x04d50000, 0x19d50000)
eden space 4416K, 0% used [0x04800000, 0x04800000, 0x04c50000)
from space 512K, 6% used [0x04c50000, 0x04c57fe0, 0x04cd0000)
to space 512K, 0% used [0x04cd0000, 0x04cd0000, 0x04d50000)
tenured generation total 10944K, used 3631K [0x19d50000, 0x1a800000, 0x44800000)
the space 10944K, 33% used [0x19d50000, 0x1a0dbd68, 0x1a0dbe00, 0x1a800000)
Metaspace used 2319K, capacity 2754K, committed 2880K, reserved 4480K
}
Event: 833.463 GC heap before
{Heap before GC invocations=1020 (full 0):
def new generation total 4928K, used 4447K [0x04800000, 0x04d50000, 0x19d50000)
eden space 4416K, 100% used [0x04800000, 0x04c50000, 0x04c50000)
from space 512K, 6% used [0x04c50000, 0x04c57fe0, 0x04cd0000)
to space 512K, 0% used [0x04cd0000, 0x04cd0000, 0x04d50000)
tenured generation total 10944K, used 3631K [0x19d50000, 0x1a800000, 0x44800000)
the space 10944K, 33% used [0x19d50000, 0x1a0dbd68, 0x1a0dbe00, 0x1a800000)
Metaspace used 2319K, capacity 2754K, committed 2880K, reserved 4480K
Event: 833.464 GC heap after
Heap after GC invocations=1021 (full 0):
def new generation total 4928K, used 35K [0x04800000, 0x04d50000, 0x19d50000)
eden space 4416K, 0% used [0x04800000, 0x04800000, 0x04c50000)
from space 512K, 6% used [0x04cd0000, 0x04cd8d50, 0x04d50000)
to space 512K, 0% used [0x04c50000, 0x04c50000, 0x04cd0000)
tenured generation total 10944K, used 3633K [0x19d50000, 0x1a800000, 0x44800000)
the space 10944K, 33% used [0x19d50000, 0x1a0dc528, 0x1a0dc600, 0x1a800000)
Metaspace used 2319K, capacity 2754K, committed 2880K, reserved 4480K
}
Event: 833.908 GC heap before
{Heap before GC invocations=1021 (full 0):
def new generation total 4928K, used 4451K [0x04800000, 0x04d50000, 0x19d50000)
eden space 4416K, 100% used [0x04800000, 0x04c50000, 0x04c50000)
from space 512K, 6% used [0x04cd0000, 0x04cd8d50, 0x04d50000)
to space 512K, 0% used [0x04c50000, 0x04c50000, 0x04cd0000)
tenured generation total 10944K, used 3633K [0x19d50000, 0x1a800000, 0x44800000)
the space 10944K, 33% used [0x19d50000, 0x1a0dc528, 0x1a0dc600, 0x1a800000)
Metaspace used 2319K, capacity 2754K, committed 2880K, reserved 4480K
Event: 833.908 GC heap after
Heap after GC invocations=1022 (full 0):
def new generation total 4928K, used 35K [0x04800000, 0x04d50000, 0x19d50000)
eden space 4416K, 0% used [0x04800000, 0x04800000, 0x04c50000)
from space 512K, 6% used [0x04c50000, 0x04c58ec8, 0x04cd0000)
to space 512K, 0% used [0x04cd0000, 0x04cd0000, 0x04d50000)
tenured generation total 10944K, used 3634K [0x19d50000, 0x1a800000, 0x44800000)
the space 10944K, 33% used [0x19d50000, 0x1a0dcbd8, 0x1a0dcc00, 0x1a800000)
Metaspace used 2319K, capacity 2754K, committed 2880K, reserved 4480K
}
Event: 834.361 GC heap before
{Heap before GC invocations=1022 (full 0):
def new generation total 4928K, used 4451K [0x04800000, 0x04d50000, 0x19d50000)
eden space 4416K, 100% used [0x04800000, 0x04c50000, 0x04c50000)
from space 512K, 6% used [0x04c50000, 0x04c58ec8, 0x04cd0000)
to space 512K, 0% used [0x04cd0000, 0x04cd0000, 0x04d50000)
tenured generation total 10944K, used 3634K [0x19d50000, 0x1a800000, 0x44800000)
the space 10944K, 33% used [0x19d50000, 0x1a0dcbd8, 0x1a0dcc00, 0x1a800000)
Metaspace used 2319K, capacity 2754K, committed 2880K, reserved 4480K
Event: 834.362 GC heap after
Heap after GC invocations=1023 (full 0):
def new generation total 4928K, used 34K [0x04800000, 0x04d50000, 0x19d50000)
eden space 4416K, 0% used [0x04800000, 0x04800000, 0x04c50000)
from space 512K, 6% used [0x04cd0000, 0x04cd8b70, 0x04d50000)
to space 512K, 0% used [0x04c50000, 0x04c50000, 0x04cd0000)
tenured generation total 10944K, used 3636K [0x19d50000, 0x1a800000, 0x44800000)
the space 10944K, 33% used [0x19d50000, 0x1a0dd388, 0x1a0dd400, 0x1a800000)
Metaspace used 2319K, capacity 2754K, committed 2880K, reserved 4480K
}
Deoptimization events (0 events):
No events
Internal exceptions (2 events):
Event: 0.032 Thread 0x00dcc400 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.defineClass(Ljava/lang/String;[BII)Ljava/lang/Class; name or signature does not match> (0x0480b6a8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u40\3098\hotspot\src\share\vÛD�goG ?
Event: 0.032 Thread 0x00dcc400 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.prefetchRead(Ljava/lang/Object;J)V name or signature does not match> (0x0480b928) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u40\3098\hotspot\src\share\vm\prims\jni.cpp, l
Events (10 events):
Event: 832.495 Executing VM operation: GenCollectForAllocation
Event: 832.495 Executing VM operation: GenCollectForAllocation done
Event: 832.989 Executing VM operation: GenCollectForAllocation
Event: 832.990 Executing VM operation: GenCollectForAllocation done
Event: 833.463 Executing VM operation: GenCollectForAllocation
Event: 833.464 Executing VM operation: GenCollectForAllocation done
Event: 833.907 Executing VM operation: GenCollectForAllocation
Event: 833.908 Executing VM operation: GenCollectForAllocation done
Event: 834.361 Executing VM operation: GenCollectForAllocation
Event: 834.362 Executing VM operation: GenCollectForAllocation done
Dynamic libraries:
0x01030000 - 0x01063000 C:\Program Files (x86)\Java\jre1.8.0_40\bin\javaw.exe
0x76e90000 - 0x77010000 C:\Windows\SysWOW64\ntdll.dll
0x748f0000 - 0x74a00000 C:\Windows\syswow64\kernel32.dll
0x768d0000 - 0x76917000 C:\Windows\syswow64\KERNELBASE.dll
0x75bc0000 - 0x75c60000 C:\Windows\syswow64\ADVAPI32.dll
0x74e30000 - 0x74edc000 C:\Windows\syswow64\msvcrt.dll
0x76a70000 - 0x76a89000 C:\Windows\SysWOW64\sechost.dll
0x75120000 - 0x75210000 C:\Windows\syswow64\RPCRT4.dll
0x74820000 - 0x74880000 C:\Windows\syswow64\SspiCli.dll
0x74810000 - 0x7481c000 C:\Windows\syswow64\CRYPTBASE.dll
0x74d30000 - 0x74e30000 C:\Windows\syswow64\USER32.dll
0x74c60000 - 0x74cf0000 C:\Windows\syswow64\GDI32.dll
0x76e60000 - 0x76e6a000 C:\Windows\syswow64\LPK.dll
0x753c0000 - 0x7545d000 C:\Windows\syswow64\USP10.dll
0x73f20000 - 0x740be000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\COMCTL32.dll
0x769b0000 - 0x76a07000 C:\Windows\syswow64\SHLWAPI.dll
0x75800000 - 0x75860000 C:\Windows\system32\IMM32.DLL
0x75460000 - 0x7552c000 C:\Windows\syswow64\MSCTF.dll
0x70400000 - 0x704bf000 C:\Program Files (x86)\Java\jre1.8.0_40\bin\msvcr100.dll
0x5fc50000 - 0x60010000 C:\Program Files (x86)\Java\jre1.8.0_40\bin\client\jvm.dll
0x73b10000 - 0x73b17000 C:\Windows\system32\WSOCK32.dll
0x75a20000 - 0x75a55000 C:\Windows\syswow64\WS2_32.dll
0x74f70000 - 0x74f76000 C:\Windows\syswow64\NSI.dll
0x72280000 - 0x722b2000 C:\Windows\system32\WINMM.dll
0x72360000 - 0x72369000 C:\Windows\system32\VERSION.dll
0x748e0000 - 0x748e5000 C:\Windows\syswow64\PSAPI.DLL
0x739c0000 - 0x739cc000 C:\Program Files (x86)\Java\jre1.8.0_40\bin\verify.dll
0x73960000 - 0x73981000 C:\Program Files (x86)\Java\jre1.8.0_40\bin\java.dll
0x73290000 - 0x732b9000 C:\Program Files (x86)\Java\jre1.8.0_40\bin\jdwp.dll
0x733b0000 - 0x733b7000 C:\Program Files (x86)\Java\jre1.8.0_40\bin\npt.dll
0x73940000 - 0x73953000 C:\Program Files (x86)\Java\jre1.8.0_40\bin\zip.dll
0x75c80000 - 0x768cb000 C:\Windows\syswow64\SHELL32.dll
0x74f90000 - 0x750ec000 C:\Windows\syswow64\ole32.dll
0x74f80000 - 0x74f8b000 C:\Windows\syswow64\profapi.dll
0x733a0000 - 0x733a8000 C:\Program Files (x86)\Java\jre1.8.0_40\bin\dt_socket.dll
0x73010000 - 0x73020000 C:\Windows\system32\NLAapi.dll
0x73000000 - 0x73010000 C:\Windows\system32\napinsp.dll
0x72fe0000 - 0x72ff2000 C:\Windows\system32\pnrpnsp.dll
0x72760000 - 0x7279c000 C:\Windows\System32\mswsock.dll
0x72710000 - 0x72754000 C:\Windows\system32\DNSAPI.dll
0x72fd0000 - 0x72fd8000 C:\Windows\System32\winrnr.dll
0x73d70000 - 0x73d8c000 C:\Windows\system32\IPHLPAPI.DLL
0x743b0000 - 0x743b7000 C:\Windows\system32\WINNSI.DLL
0x726d0000 - 0x72708000 C:\Windows\System32\fwpuclnt.dll
0x726c0000 - 0x726c6000 C:\Windows\system32\rasadhlp.dll
0x726a0000 - 0x726a5000 C:\Windows\System32\wshtcpip.dll
0x6fb50000 - 0x6fdaf000 C:\Users\human\workspace\Bot\bwapi_bridge2_3.dll
0x72510000 - 0x72581000 C:\Windows\system32\MSVCP120.dll
0x72420000 - 0x7250e000 C:\Windows\system32\MSVCR120.dll
0x6acc0000 - 0x6ad27000 C:\Windows\libgmp-10.dll
0x6f540000 - 0x6f59e000 C:\Windows\libmpfr-4.dll
0x71a80000 - 0x71b6b000 C:\Windows\system32\dbghelp.dll
VM Arguments:
jvm_args: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:61661 -Xmx1024M -Dfile.encoding=Cp1252
java_command: event.StarcraftListener
java_class_path (initial): C:\Users\human\workspace\Bot\bin;C:\Users\human\workspace\Bot\lib\bwmirror_v2_3.jar
Launcher Type: SUN_STANDARD
Environment Variables:
PATH=C:/Program Files (x86)/Java/jre1.8.0_40/bin/client;C:/Program Files (x86)/Java/jre1.8.0_40/bin;C:/Program Files (x86)/Java/jre1.8.0_40/lib/i386;C:\Users\human\Desktop\;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Users\human\Desktop\eclipsex86;
USERNAME=human
OS=Windows_NT
PROCESSOR_IDENTIFIER=AMD64 Family 16 Model 4 Stepping 2, AuthenticAMD
--------------- S Y S T E M ---------------
OS: Windows 7 , 64 bit Build 7601 (6.1.7601.18409)
CPU:total 4 (4 cores per cpu, 1 threads per core) family 16 model 4 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, popcnt, mmxext, 3dnowpref, lzcnt, sse4a, tsc, tscinvbit, tscinv
Memory: 4k page, physical 16774684k(10288620k free), swap 16772828k(10139180k free)
vm_info: Java HotSpot(TM) Client VM (25.40-b25) for windows-x86 JRE (1.8.0_40-b26), built on Mar 7 2015 13:51:08 by "java_re" with MS VC++ 10.0 (VS2010)
time: Wed Apr 22 11:28:36 2015
elapsed time: 834 seconds (0d 0h 13m 54s)
When calling a Unit command like someUnit.gather(mineralSpot)
from a different thread than the main thread consistently returns false
;
calling on the main thread consistently returns true
, all else being equal.
Any ideas why that might be? Is that a BWAPI thing?
Seems to have been a programming error on my part, I suspect an uncaught exception sometime during the onFrame event.
That was premature; still investigating.
onUnitCreate(Unit unit) unit different object than querying self.getUnits() in onFrame() method what is not a problem, but putting them in the same collection/map is wrong due to the fact that Unit class equals and hashcode methods are not implemented. I suggest implementing them by comparing unit ids! Please also check all other classes (Player also) and implement these methods, as this is a Java lib.
Thanks in advance!
It seems like Chokepoint
is missing some of the corresponding functions available in BWTA2. For example:
getRegions
const std::pair<Region*,Region*>& getRegions() const;
Returns the two regions the chokepoint connects.
getSides
const std::pair<BWAPI::Position,BWAPI::Position>& getSides() const;
Returns the two sides of the chokepoint.
https://bitbucket.org/auriarte/bwta2/wiki/Chokepoint.wiki#!chokepoint
Is this as intended, or has BWTA simply changed?
I cant get the example bot to start please help!!
Connecting to Broodwar...
0 | 10084 | 0 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
Connected
Error: Client and Server are not compatible!
Client Revision: 4708
Server Revision: 10002
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
No server proc ID
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
0 | 10084 | 1 | 2066968
1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
4 | 0 | 0 | 0
5 | 0 | 0 | 0
6 | 0 | 0 | 0
7 | 0 | 0 | 0
No server proc ID
I can't seem to get getUnitsInWeaponRange working. Everything I tried ends up in EXCEPTION_UNCAUGHT_CXX_EXCEPTION. I'm not sure if this is a bwapi or bwmirror problem, maybe the log file could help figure that out hs_err_pid6876.txt. What I tried is:
unit.getUnitsInWeaponRange(unit.getType().airWeapon())
unit.getUnitsInWeaponRange(unit.getType().groundWeapon())
unit.getUnitsInWeaponRange(WeaponType.Phase_Disruptor)
When I try to do the same using
unit.getUnitsInRadius(unit.getType().airWeapon().maxRange())
it works just fine.
Hi,
following discussion on facebook https://www.facebook.com/groups/bwapi/permalink/10159604643540261 we found that this condition
BWMirror/api/bwapi/Mirror.java
Line 64 in 5785879
is not sufficient, since java on Linux claims its 32bit architecture as i386
Can you please expand the if statement? :) (and, if possible, update older releases?)
Another workaround might be in building openjdk from sources with different tag, didn't try that yet.
The problem is that BWMirror is used by many bots, and we would like to launch them so that they can play against our bot...
Hello. Running the example bot results in no actions ingame. Instead, as soon as the game starts, the BOT starts printing some mess in the console:
Attempting to init BWAPI...
BWAPI ready.
Connecting to Broodwar...
0 | 17604 | 0 | 6734110
1 | 4294967295 | 0 | 0
2 | 4294967295 | 0 | 0
3 | 4294967295 | 0 | 0
4 | 4294967295 | 0 | 0
5 | 4294967295 | 0 | 0
6 | 4294967295 | 0 | 0
7 | 4294967295 | 0 | 0
0 | 17604 | 0 | 6734110
1 | 4294967295 | 0 | 0
2 | 4294967295 | 0 | 0
3 | 4294967295 | 0 | 0
4 | 4294967295 | 0 | 0
5 | 4294967295 | 0 | 0
6 | 4294967295 | 0 | 0
7 | 4294967295 | 0 | 0
0 | 17604 | 0 | 6734110
1 | 4294967295 | 0 | 0
2 | 4294967295 | 0 | 0
3 | 4294967295 | 0 | 0
4 | 4294967295 | 0 | 0
5 | 4294967295 | 0 | 0
6 | 4294967295 | 0 | 0
7 | 4294967295 | 0 | 0
0 | 17604 | 0 | 6734110
This goes on for a while then it stops. What is it? Why isn't the bot doing anything? I observed the same problem with my friend's bot.
I get error listed below occasionally. Could it be Win10 specific?
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_UNCAUGHT_CXX_EXCEPTION (0xe06d7363) at pc=0x774ca882, pid=6612, tid=0x00001e70
#
# JRE version: Java(TM) SE Runtime Environment (8.0_102-b14) (build 1.8.0_102-b14)
# Java VM: Java HotSpot(TM) Client VM (25.102-b14 mixed mode, sharing windows-x86 )
# Problematic frame:
# C [KERNELBASE.dll+0xda882]
#
# 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.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
--------------- T H R E A D ---------------
Current thread (0x0209d800): JavaThread "main" [_thread_in_native, id=7792, stack(0x02040000,0x02090000)]
siginfo: ExceptionCode=0xe06d7363, ExceptionInformation=0x19930520 0x0208d3fc 0x70fb0d38
Registers:
EAX=0x0208d350, EBX=0x1616396c, ECX=0x00000003, EDX=0x00000000
ESP=0x0208d350, EBP=0x0208d3ac, ESI=0x70fb0d38, EDI=0x0208d3fc
EIP=0x774ca882, EFLAGS=0x00000216
Top of Stack: (sp=0x0208d350)
0x0208d350: e06d7363 00000001 00000000 774ca882
0x0208d360: 00000003 19930520 0208d3fc 70fb0d38
0x0208d370: 007d7fc0 000002a5 000b089c 00000000
0x0208d380: 000b01c4 00000020 000b0898 00000064
0x0208d390: 0208d3c8 778f5c0c 00000010 00000000
0x0208d3a0: 0000003f ac9345cf 1857f940 0208d3ec
0x0208d3b0: 6ffd9339 e06d7363 00000001 00000003
0x0208d3c0: 0208d3e0 00000011 1873f92c e06d7363
Instructions: (pc=0x774ca882)
0x774ca862: 89 44 24 10 c1 e0 02 50 51 8d 44 24 1c 50 e8 ab
0x774ca872: 32 02 00 83 c4 0c 8d 04 24 50 ff 15 90 83 56 77
0x774ca882: 8b 4c 24 54 33 cc e8 c8 f3 01 00 8b e5 5d c2 10
0x774ca892: 00 83 64 24 10 00 eb de 6a 0f 58 eb c3 cc cc cc
Register to memory mapping:
EAX=0x0208d350 is pointing into the stack for thread: 0x0209d800
EBX=0x1616396c is an unknown value
ECX=0x00000003 is an unknown value
EDX=0x00000000 is an unknown value
ESP=0x0208d350 is pointing into the stack for thread: 0x0209d800
EBP=0x0208d3ac is pointing into the stack for thread: 0x0209d800
ESI=0x70fb0d38 is an unknown value
EDI=0x0208d3fc is pointing into the stack for thread: 0x0209d800
Stack: [0x02040000,0x02090000], sp=0x0208d350, free space=308k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [KERNELBASE.dll+0xda882]
C [MSVCR120.dll+0x19339]
C [MSVCP120.dll+0x139ad]
C [bwapi_bridge2_5.dll+0x88d85]
C [bwapi_bridge2_5.dll+0x8df0e]
C [bwapi_bridge2_5.dll+0x92ab7]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j bwapi.Unit.getUnitsInWeaponRange_native(JLbwapi/WeaponType;)Ljava/util/List;+0
j bwapi.Unit.getUnitsInWeaponRange(Lbwapi/WeaponType;)Ljava/util/List;+6
j cz.jan.maly.model.game.wrappers.AUnit.<init>(Lbwapi/Unit;Z)V+130
j cz.jan.maly.model.game.wrappers.AUnit$Players.<init>(Lbwapi/Unit;Z)V+3
j cz.jan.maly.model.game.wrappers.AUnitOfPlayer.<init>(Lbwapi/Unit;Z)V+3
j cz.jan.maly.model.game.wrappers.AUnitWithCommands.<init>(Lbwapi/Unit;Z)V+3
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.getCurrentWrappedUnitToCommand(Lbwapi/Unit;IZ)Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;+45
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.lambda$wrapReferencedUnitsForUnit$4(IZLbwapi/Unit;)V+3
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory$$Lambda$39.accept(Ljava/lang/Object;)V+12
j java.lang.Iterable.forEach(Ljava/util/function/Consumer;)V+30
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.wrapReferencedUnitsForUnit(Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;IZ)V+104
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.getCurrentWrappedUnitToCommand(Lbwapi/Unit;IZ)Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;+120
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.lambda$wrapReferencedUnitsForUnit$4(IZLbwapi/Unit;)V+3
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory$$Lambda$39.accept(Ljava/lang/Object;)V+12
j java.lang.Iterable.forEach(Ljava/util/function/Consumer;)V+30
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.wrapReferencedUnitsForUnit(Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;IZ)V+104
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.getCurrentWrappedUnitToCommand(Lbwapi/Unit;IZ)Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;+120
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.lambda$wrapReferencedUnitsForUnit$4(IZLbwapi/Unit;)V+3
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory$$Lambda$39.accept(Ljava/lang/Object;)V+12
j java.lang.Iterable.forEach(Ljava/util/function/Consumer;)V+30
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.wrapReferencedUnitsForUnit(Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;IZ)V+104
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.getCurrentWrappedUnitToCommand(Lbwapi/Unit;IZ)Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;+120
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.lambda$wrapReferencedUnitsForUnit$4(IZLbwapi/Unit;)V+3
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory$$Lambda$39.accept(Ljava/lang/Object;)V+12
j java.lang.Iterable.forEach(Ljava/util/function/Consumer;)V+30
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.wrapReferencedUnitsForUnit(Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;IZ)V+104
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.getCurrentWrappedUnitToCommand(Lbwapi/Unit;IZ)Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;+120
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.lambda$wrapReferencedUnitsForUnit$4(IZLbwapi/Unit;)V+3
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory$$Lambda$39.accept(Ljava/lang/Object;)V+12
j java.lang.Iterable.forEach(Ljava/util/function/Consumer;)V+30
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.wrapReferencedUnitsForUnit(Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;IZ)V+104
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.getCurrentWrappedUnitToCommand(Lbwapi/Unit;IZ)Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;+120
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.lambda$wrapReferencedUnitsForUnit$4(IZLbwapi/Unit;)V+3
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory$$Lambda$39.accept(Ljava/lang/Object;)V+12
j java.lang.Iterable.forEach(Ljava/util/function/Consumer;)V+30
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.wrapReferencedUnitsForUnit(Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;IZ)V+104
j cz.jan.maly.model.game.wrappers.UnitWrapperFactory.getCurrentWrappedUnitToCommand(Lbwapi/Unit;IZ)Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;+65
j cz.jan.maly.model.game.wrappers.AUnitWithCommands.makeObservationOfEnvironment(I)Lcz/jan/maly/model/game/wrappers/AUnitWithCommands;+6
j cz.jan.maly.model.agent.BWAgentInGame.lambda$static$0(Lcz/jan/maly/model/knowledge/WorkingMemory;Lbwapi/Game;)Z+48
j cz.jan.maly.model.agent.BWAgentInGame$$Lambda$41.observe(Lcz/jan/maly/model/knowledge/WorkingMemory;Ljava/lang/Object;)Z+5
j cz.jan.maly.service.ObservingCommandManager.executeCommand(Lcz/jan/maly/model/planing/command/ObservingCommand;Lcz/jan/maly/model/knowledge/WorkingMemory;Ljava/lang/Object;)Z+3
j cz.jan.maly.service.implementation.GameCommandExecutor$1.executeCode()Ljava/lang/Boolean;+19
j cz.jan.maly.service.implementation.GameCommandExecutor$1.executeCode()Ljava/lang/Object;+1
j cz.jan.maly.model.QueuedItemInterfaceWithResponse.executeItem()V+7
j cz.jan.maly.service.implementation.GameCommandExecutor.executeCommand(Lcz/jan/maly/service/implementation/GameCommandExecutor$QueuedItemInterfaceWithResponseWithCommandClassGetter;)V+5
J 221 C1 cz.jan.maly.service.implementation.GameCommandExecutor.executeCommand(JI)I (166 bytes) @ 0x0241ee84 [0x0241eb30+0x354]
J 230 C1 cz.jan.maly.service.implementation.GameCommandExecutor.actOnFrame()V (96 bytes) @ 0x02421560 [0x024214e0+0x80]
j cz.jan.maly.service.implementation.BotFacade.onFrame()V+4
j bwapi.AIModule.onFrame()V+11
v ~StubRoutines::call_stub
j bwapi.Mirror.startGame()V+0
j cz.jan.maly.service.implementation.BotFacade.run()V+15
j cz.jan.maly.SimpleBot.main([Ljava/lang/String;)V+7
v ~StubRoutines::call_stub
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x155b3800 JavaThread "Thread-6" [_thread_blocked, id=8472, stack(0x18af0000,0x18b40000)]
0x155b3000 JavaThread "Thread-5" [_thread_blocked, id=3976, stack(0x18a60000,0x18ab0000)]
0x155ac000 JavaThread "Thread-4" [_thread_blocked, id=32, stack(0x189d0000,0x18a20000)]
0x155a9000 JavaThread "Thread-3" [_thread_blocked, id=18356, stack(0x165a0000,0x165f0000)]
0x1556b800 JavaThread "Thread-2" [_thread_blocked, id=8680, stack(0x16000000,0x16050000)]
0x15567800 JavaThread "Thread-1" [_thread_in_vm, id=16112, stack(0x15f70000,0x15fc0000)]
0x022e1000 JavaThread "Service Thread" daemon [_thread_blocked, id=19120, stack(0x153c0000,0x15410000)]
0x022dd800 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=10584, stack(0x15330000,0x15380000)]
0x022dc400 JavaThread "Monitor Ctrl-Break" daemon [_thread_in_native, id=11180, stack(0x152a0000,0x152f0000)]
0x02281800 JavaThread "Attach Listener" daemon [_thread_blocked, id=15164, stack(0x15210000,0x15260000)]
0x0227fc00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=11560, stack(0x14b70000,0x14bc0000)]
0x02275800 JavaThread "Finalizer" daemon [_thread_blocked, id=13664, stack(0x149f0000,0x14a40000)]
0x02218c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=15584, stack(0x149a0000,0x149f0000)]
=>0x0209d800 JavaThread "main" [_thread_in_native, id=7792, stack(0x02040000,0x02090000)]
Other Threads:
0x02215400 VMThread [stack: 0x14950000,0x149a0000] [id=10596]
0x15466000 WatcherThread [stack: 0x15650000,0x156a0000] [id=12304]
VM state:not at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: None
Heap:
def new generation total 4928K, used 2445K [0x04400000, 0x04950000, 0x09950000)
eden space 4416K, 53% used [0x04400000, 0x04651208, 0x04850000)
from space 512K, 14% used [0x048d0000, 0x048e2518, 0x04950000)
to space 512K, 0% used [0x04850000, 0x04850000, 0x048d0000)
tenured generation total 10944K, used 1258K [0x09950000, 0x0a400000, 0x14400000)
the space 10944K, 11% used [0x09950000, 0x09a8a950, 0x09a8aa00, 0x0a400000)
Metaspace used 1705K, capacity 3882K, committed 3904K, reserved 4480K
Card table byte_map: [0x14400000,0x14490000] byte_map_base: 0x143de000
Polling page: 0x003d0000
CodeCache: size=32768Kb used=1010Kb max_used=1010Kb free=31757Kb
bounds [0x02340000, 0x02440000, 0x04340000]
total_blobs=463 nmethods=309 adapters=85
compilation: enabled
Compilation events (10 events):
Event: 6.875 Thread 0x022dd800 305 java.util.IdentityHashMap::maskNull (12 bytes)
Event: 6.875 Thread 0x022dd800 nmethod 305 0x0243bd88 code [0x0243be80, 0x0243bf00]
Event: 6.966 Thread 0x022dd800 306 java.util.Arrays::copyOf (13 bytes)
Event: 6.966 Thread 0x022dd800 nmethod 306 0x0243bf48 code [0x0243c040, 0x0243c0cc]
Event: 6.967 Thread 0x022dd800 307 java.util.ArrayList::ensureCapacityInternal (23 bytes)
Event: 6.967 Thread 0x022dd800 nmethod 307 0x0243c148 code [0x0243c250, 0x0243c31c]
Event: 6.967 Thread 0x022dd800 308 java.util.ArrayList::ensureExplicitCapacity (26 bytes)
Event: 6.967 Thread 0x022dd800 nmethod 308 0x0243c3c8 code [0x0243c4d0, 0x0243c57c]
Event: 6.967 Thread 0x022dd800 309 java.util.ArrayList::add (29 bytes)
Event: 6.967 Thread 0x022dd800 nmethod 309 0x0243c608 code [0x0243c710, 0x0243c87c]
GC Heap History (10 events):
Event: 6.368 GC heap before
{Heap before GC invocations=0 (full 0):
def new generation total 4928K, used 4416K [0x04400000, 0x04950000, 0x09950000)
eden space 4416K, 100% used [0x04400000, 0x04850000, 0x04850000)
from space 512K, 0% used [0x04850000, 0x04850000, 0x048d0000)
to space 512K, 0% used [0x048d0000, 0x048d0000, 0x04950000)
tenured generation total 10944K, used 0K [0x09950000, 0x0a400000, 0x14400000)
the space 10944K, 0% used [0x09950000, 0x09950000, 0x09950200, 0x0a400000)
Metaspace used 718K, capacity 2880K, committed 3008K, reserved 4480K
Event: 6.370 GC heap after
Heap after GC invocations=1 (full 0):
def new generation total 4928K, used 512K [0x04400000, 0x04950000, 0x09950000)
eden space 4416K, 0% used [0x04400000, 0x04400000, 0x04850000)
from space 512K, 100% used [0x048d0000, 0x04950000, 0x04950000)
to space 512K, 0% used [0x04850000, 0x04850000, 0x048d0000)
tenured generation total 10944K, used 415K [0x09950000, 0x0a400000, 0x14400000)
the space 10944K, 3% used [0x09950000, 0x099b7f98, 0x099b8000, 0x0a400000)
Metaspace used 718K, capacity 2880K, committed 3008K, reserved 4480K
}
Event: 6.788 GC heap before
{Heap before GC invocations=1 (full 0):
def new generation total 4928K, used 4928K [0x04400000, 0x04950000, 0x09950000)
eden space 4416K, 100% used [0x04400000, 0x04850000, 0x04850000)
from space 512K, 100% used [0x048d0000, 0x04950000, 0x04950000)
to space 512K, 0% used [0x04850000, 0x04850000, 0x048d0000)
tenured generation total 10944K, used 415K [0x09950000, 0x0a400000, 0x14400000)
the space 10944K, 3% used [0x09950000, 0x099b7f98, 0x099b8000, 0x0a400000)
Metaspace used 1356K, capacity 3341K, committed 3392K, reserved 4480K
Event: 6.790 GC heap after
Heap after GC invocations=2 (full 0):
def new generation total 4928K, used 396K [0x04400000, 0x04950000, 0x09950000)
eden space 4416K, 0% used [0x04400000, 0x04400000, 0x04850000)
from space 512K, 77% used [0x04850000, 0x048b32b0, 0x048d0000)
to space 512K, 0% used [0x048d0000, 0x048d0000, 0x04950000)
tenured generation total 10944K, used 914K [0x09950000, 0x0a400000, 0x14400000)
the space 10944K, 8% used [0x09950000, 0x09a34958, 0x09a34a00, 0x0a400000)
Metaspace used 1356K, capacity 3341K, committed 3392K, reserved 4480K
}
Event: 6.819 GC heap before
{Heap before GC invocations=2 (full 0):
def new generation total 4928K, used 4812K [0x04400000, 0x04950000, 0x09950000)
eden space 4416K, 100% used [0x04400000, 0x04850000, 0x04850000)
from space 512K, 77% used [0x04850000, 0x048b32b0, 0x048d0000)
to space 512K, 0% used [0x048d0000, 0x048d0000, 0x04950000)
tenured generation total 10944K, used 914K [0x09950000, 0x0a400000, 0x14400000)
the space 10944K, 8% used [0x09950000, 0x09a34958, 0x09a34a00, 0x0a400000)
Metaspace used 1414K, capacity 3413K, committed 3520K, reserved 4480K
Event: 6.820 GC heap after
Heap after GC invocations=3 (full 0):
def new generation total 4928K, used 33K [0x04400000, 0x04950000, 0x09950000)
eden space 4416K, 0% used [0x04400000, 0x04400000, 0x04850000)
from space 512K, 6% used [0x048d0000, 0x048d86c8, 0x04950000)
to space 512K, 0% used [0x04850000, 0x04850000, 0x048d0000)
tenured generation total 10944K, used 1258K [0x09950000, 0x0a400000, 0x14400000)
the space 10944K, 11% used [0x09950000, 0x09a8a950, 0x09a8aa00, 0x0a400000)
Metaspace used 1414K, capacity 3413K, committed 3520K, reserved 4480K
}
Event: 6.831 GC heap before
{Heap before GC invocations=3 (full 0):
def new generation total 4928K, used 4449K [0x04400000, 0x04950000, 0x09950000)
eden space 4416K, 100% used [0x04400000, 0x04850000, 0x04850000)
from space 512K, 6% used [0x048d0000, 0x048d86c8, 0x04950000)
to space 512K, 0% used [0x04850000, 0x04850000, 0x048d0000)
tenured generation total 10944K, used 1258K [0x09950000, 0x0a400000, 0x14400000)
the space 10944K, 11% used [0x09950000, 0x09a8a950, 0x09a8aa00, 0x0a400000)
Metaspace used 1414K, capacity 3413K, committed 3520K, reserved 4480K
Event: 6.832 GC heap after
Heap after GC invocations=4 (full 0):
def new generation total 4928K, used 25K [0x04400000, 0x04950000, 0x09950000)
eden space 4416K, 0% used [0x04400000, 0x04400000, 0x04850000)
from space 512K, 5% used [0x04850000, 0x048566d0, 0x048d0000)
to space 512K, 0% used [0x048d0000, 0x048d0000, 0x04950000)
tenured generation total 10944K, used 1258K [0x09950000, 0x0a400000, 0x14400000)
the space 10944K, 11% used [0x09950000, 0x09a8a950, 0x09a8aa00, 0x0a400000)
Metaspace used 1414K, capacity 3413K, committed 3520K, reserved 4480K
}
Event: 6.849 GC heap before
{Heap before GC invocations=4 (full 0):
def new generation total 4928K, used 4441K [0x04400000, 0x04950000, 0x09950000)
eden space 4416K, 100% used [0x04400000, 0x04850000, 0x04850000)
from space 512K, 5% used [0x04850000, 0x048566d0, 0x048d0000)
to space 512K, 0% used [0x048d0000, 0x048d0000, 0x04950000)
tenured generation total 10944K, used 1258K [0x09950000, 0x0a400000, 0x14400000)
the space 10944K, 11% used [0x09950000, 0x09a8a950, 0x09a8aa00, 0x0a400000)
Metaspace used 1475K, capacity 3553K, committed 3648K, reserved 4480K
Event: 6.849 GC heap after
Heap after GC invocations=5 (full 0):
def new generation total 4928K, used 73K [0x04400000, 0x04950000, 0x09950000)
eden space 4416K, 0% used [0x04400000, 0x04400000, 0x04850000)
from space 512K, 14% used [0x048d0000, 0x048e2518, 0x04950000)
to space 512K, 0% used [0x04850000, 0x04850000, 0x048d0000)
tenured generation total 10944K, used 1258K [0x09950000, 0x0a400000, 0x14400000)
the space 10944K, 11% used [0x09950000, 0x09a8a950, 0x09a8aa00, 0x0a400000)
Metaspace used 1475K, capacity 3553K, committed 3648K, reserved 4480K
}
Deoptimization events (0 events):
No events
Internal exceptions (7 events):
Event: 0.025 Thread 0x0209d800 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.defineClass(Ljava/lang/String;[BII)Ljava/lang/Class; name or signature does not match> (0x04407990) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u102\7268\hotspot\src\share\4��
!��?
Event: 0.025 Thread 0x0209d800 Exception <a 'java/lang/NoSuchMethodError': Method sun.misc.Unsafe.prefetchRead(Ljava/lang/Object;J)V name or signature does not match> (0x04407c60) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u102\7268\hotspot\src\share\vm\prims\jni.cpp, ���w�u�@
Event: 6.364 Thread 0x0209d800 Exception <a 'java/lang/NoSuchFieldError': method resolution failed> (0x04822fa8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u102\7268\hotspot\src\share\vm\prims\methodHandles.cpp, line 1146]
Event: 6.365 Thread 0x0209d800 Exception <a 'java/lang/NoSuchFieldError': method resolution failed> (0x0482f998) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u102\7268\hotspot\src\share\vm\prims\methodHandles.cpp, line 1146]
Event: 6.777 Thread 0x0209d800 Exception <a 'java/lang/IncompatibleClassChangeError': Found class java.lang.Object, but interface was expected> (0x0478ced8) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u102\7268\hotspot\src\share\vm\interpreter\linkResolver.cpp, line 641���v�b�@
Event: 6.846 Thread 0x155a9000 Exception <a 'java/lang/NoSuchMethodError': java.lang.Object.lambda$identity$2(Ljava/lang/Object;)Ljava/lang/Object;> (0x047fde28) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u102\7268\hotspot\src\share\vm\interpreter\linkResolver.cpp, lin���v�b�@
Event: 6.846 Thread 0x155ac000 Exception <a 'java/lang/NoSuchMethodError': java.lang.Object.lambda$identity$2(Ljava/lang/Object;)Ljava/lang/Object;> (0x047eb380) thrown at [C:\re\workspace\8-2-build-windows-i586-cygwin\jdk8u102\7268\hotspot\src\share\vm\interpreter\linkResolver.cpp, lin
Events (10 events):
Event: 6.874 loading class cz/jan/maly/model/planing/tree/Node
Event: 6.874 loading class cz/jan/maly/model/planing/tree/Node done
Event: 6.874 loading class cz/jan/maly/model/planing/tree/visitors/CommandExecutor
Event: 6.874 loading class cz/jan/maly/model/planing/tree/visitors/CommandExecutor done
Event: 6.874 loading class cz/jan/maly/model/planing/tree/Node
Event: 6.874 loading class cz/jan/maly/model/planing/tree/Node done
Event: 6.874 loading class cz/jan/maly/model/planing/tree/Node
Event: 6.874 loading class cz/jan/maly/model/planing/tree/Node done
Event: 6.874 loading class cz/jan/maly/model/planing/tree/visitors/CommitmentRemovalDecider
Event: 6.874 loading class cz/jan/maly/model/planing/tree/visitors/CommitmentRemovalDecider done
Dynamic libraries:
0x00230000 - 0x00263000 C:\Program Files (x86)\Java\jdk1.8.0_102\bin\java.exe
0x778b0000 - 0x77a33000 C:\WINDOWS\SYSTEM32\ntdll.dll
0x77770000 - 0x77850000 C:\WINDOWS\System32\KERNEL32.DLL
0x773f0000 - 0x77591000 C:\WINDOWS\System32\KERNELBASE.dll
0x6d040000 - 0x6d0d2000 C:\WINDOWS\system32\apphelp.dll
0x76690000 - 0x76707000 C:\WINDOWS\System32\ADVAPI32.dll
0x76ba0000 - 0x76c5e000 C:\WINDOWS\System32\msvcrt.dll
0x76510000 - 0x76551000 C:\WINDOWS\System32\sechost.dll
0x74510000 - 0x745d1000 C:\WINDOWS\System32\RPCRT4.dll
0x74370000 - 0x7438e000 C:\WINDOWS\System32\SspiCli.dll
0x74360000 - 0x7436a000 C:\WINDOWS\System32\CRYPTBASE.dll
0x75b00000 - 0x75b5a000 C:\WINDOWS\System32\bcryptPrimitives.dll
0x763b0000 - 0x7650f000 C:\WINDOWS\System32\USER32.dll
0x75ae0000 - 0x75af5000 C:\WINDOWS\System32\win32u.dll
0x76560000 - 0x7658b000 C:\WINDOWS\System32\GDI32.dll
0x76a40000 - 0x76b9b000 C:\WINDOWS\System32\gdi32full.dll
0x73f60000 - 0x7416a000 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.14393.953_none_89c2555adb023171\COMCTL32.dll
0x76c60000 - 0x76e71000 C:\WINDOWS\System32\combase.dll
0x75a00000 - 0x75ae0000 C:\WINDOWS\System32\ucrtbase.dll
0x776e0000 - 0x77705000 C:\WINDOWS\System32\IMM32.DLL
0x6b330000 - 0x6b3ef000 C:\Program Files (x86)\Java\jdk1.8.0_102\jre\bin\msvcr100.dll
0x683c0000 - 0x6878d000 C:\Program Files (x86)\Java\jdk1.8.0_102\jre\bin\client\jvm.dll
0x77710000 - 0x77716000 C:\WINDOWS\System32\PSAPI.DLL
0x6e3e0000 - 0x6e3e8000 C:\WINDOWS\SYSTEM32\WSOCK32.dll
0x74170000 - 0x74178000 C:\WINDOWS\SYSTEM32\VERSION.dll
0x75c60000 - 0x75cc3000 C:\WINDOWS\System32\WS2_32.dll
0x741b0000 - 0x741d4000 C:\WINDOWS\SYSTEM32\WINMM.dll
0x00720000 - 0x00743000 C:\WINDOWS\SYSTEM32\WINMMBASE.dll
0x745e0000 - 0x74616000 C:\WINDOWS\System32\cfgmgr32.dll
0x6db50000 - 0x6db5c000 C:\Program Files (x86)\Java\jdk1.8.0_102\jre\bin\verify.dll
0x6c0f0000 - 0x6c111000 C:\Program Files (x86)\Java\jdk1.8.0_102\jre\bin\java.dll
0x6cb70000 - 0x6cb90000 C:\Program Files (x86)\Java\jdk1.8.0_102\jre\bin\instrument.dll
0x6db30000 - 0x6db43000 C:\Program Files (x86)\Java\jdk1.8.0_102\jre\bin\zip.dll
0x74620000 - 0x759f9000 C:\WINDOWS\System32\SHELL32.dll
0x76e80000 - 0x773ee000 C:\WINDOWS\System32\windows.storage.dll
0x77720000 - 0x77765000 C:\WINDOWS\System32\powrprof.dll
0x76960000 - 0x769a6000 C:\WINDOWS\System32\shlwapi.dll
0x75e10000 - 0x75e1d000 C:\WINDOWS\System32\kernel.appcore.dll
0x77640000 - 0x776c8000 C:\WINDOWS\System32\shcore.dll
0x76680000 - 0x7668f000 C:\WINDOWS\System32\profapi.dll
0x6b310000 - 0x6b326000 C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2017.1\bin\breakgen.dll
0x6b2f0000 - 0x6b306000 C:\Program Files (x86)\Java\jdk1.8.0_102\jre\bin\net.dll
0x71020000 - 0x7106e000 C:\WINDOWS\system32\mswsock.dll
0x679d0000 - 0x67c56000 C:\Users\Jan\Documents\kusanagi\bwapi_bridge2_5.dll
0x6f540000 - 0x6f59e000 C:\Users\Jan\Documents\kusanagi\libmpfr-4.dll
0x6acc0000 - 0x6ad27000 C:\Users\Jan\Documents\kusanagi\libgmp-10.dll
0x70f70000 - 0x70fe1000 C:\WINDOWS\SYSTEM32\MSVCP120.dll
0x6ffc0000 - 0x700ae000 C:\WINDOWS\SYSTEM32\MSVCR120.dll
0x6ccc0000 - 0x6ce05000 C:\WINDOWS\SYSTEM32\dbghelp.dll
VM Arguments:
jvm_args: -javaagent:C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2017.1\lib\idea_rt.jar=63613:C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2017.1\bin -Dfile.encoding=UTF-8
java_command: cz.jan.maly.SimpleBot
java_class_path (initial): C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\charsets.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\deploy.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\access-bridge-32.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\cldrdata.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\dnsns.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\jaccess.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\jfxrt.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\localedata.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\nashorn.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\sunec.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\sunjce_provider.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\sunmscapi.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\sunpkcs11.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\ext\zipfs.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\javaws.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\jce.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\jfr.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\jfxswt.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\jsse.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\management-agent.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\plugin.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\resources.jar;C:\Program Files (x86)\Java\jdk1.8.0_102\jre\lib\rt.jar;C:\Users\Jan\Documents\kusanagi\bot\target\classes;C:\Users\Jan\.m2\repository\bwmirror\bwmirror\2.5\bwmirror-2.5.jar;C:\Users\Jan\Documents\kusanagi\abstract-bot\target\classes;C:\Users\Jan\Documents\kusanagi\mas-framework\target\classes;C:\Users\Jan\.m2\repository\uk\com\robust-it\cloning\1.9.3\cloning-1.9.3.jar;C:\Users\Jan\.m2\repository\org\objenesis\objenesis\2.1\objenesis-2.1.jar;C:\Users\Jan\.m2\repository\org\jetbrains\annotations\13.0\annotations-13.0.jar;C:\Program Files (x86)\JetBrains\IntelliJ
Launcher Type: SUN_STANDARD
Environment Variables:
PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\libnvvp;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\libnvvp;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Users\Jan\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Users\Jan\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\IBM\ILOG\CPLEX_Studio124\opl\bin\x64_win64;C:\Program Files\IBM\ILOG\CPLEX_Studio124\opl\oplide\;C:\Program Files\IBM\ILOG\CPLEX_Studio124\cplex\bin\x64_win64;C:\Program Files\IBM\ILOG\CPLEX_Studio124\cpoptimizer\bin\x64_win64;C:\Users\Jan\AppData\Roaming\npm
USERNAME=Jan
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
--------------- S Y S T E M ---------------
OS: Windows 10.0 , 64 bit Build 14393 (10.0.14393.0)
CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 94 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, rtm, 3dnowpref, lzcnt, tsc, tscinvbit, bmi1, bmi2, adx
Memory: 4k page, physical 16712364k(8914304k free), swap 19202732k(9473064k free)
vm_info: Java HotSpot(TM) Client VM (25.102-b14) for windows-x86 JRE (1.8.0_102-b14), built on Jun 22 2016 13:13:29 by "java_re" with MS VC++ 10.0 (VS2010)
time: Mon Apr 03 14:26:02 2017
elapsed time: 7 seconds (0d 0h 0m 7s)
https://github.com/JNIBWAPI/JNIBWAPI uses a very similar approach as this project but does actually support 64-bit as well. Would that be possible for this project too?
BWAPI automatically convert Unit and Position to PositionOrUnit, in BWMIrror API you have to use new PositionOrUnit(position) which is too verbose.
Overload functions that take PositionOrUnit as parameter to support all three types of parameters.
Has just been released :) https://github.com/bwapi/bwapi/releases/tag/v4.2.0
A lot of people currently use the old documentation (bwmirror.jurenka.sk/javadoc/)
This should redirect to the documentation on github instead http://vjurenka.github.io/BWMirror/javadoc/, which is very poor compared to the old one, because the BWAPI google code documentation parser is currently broken. A need parser for BWAPI's github documentation has to be implemented.
The command System.out.println(UnitType.Zerg_Zergling.size().toString());
crashes JRE with EXCEPTION_ACCESS_VIOLATION
.
I was also not able to compare UnitSizeType objects such as getting a unit from self.getUnits()
then comparing its UnitSizeType against UnitSizeType.Zerg_Zergling.size()
. The comparison does not crash JRE, the comparison simply fails to return true when the two UnitSizeType objects should be equal. It appears .size()
just returns null or some empty/irrelevant object every time no matter what the UnitType is.
Software:
I have a loop which is the following:
for(Unit unit: game.enemy().getUnits()){
x = unit.getPosition().getX();
y = unit.getPosition().getY();
}
When the enemy unit is visible, I get reasonable values for x and y such as (1280, 1104) on a 128x128 map which is 4096x4096 pixels. However, when the enemy unit goes back into the fog of war, the values I receive for x and a y are 32000, 32064. The unit type is unknown and the hit points are zero, however the ID stays the same. Is this the expected behavior? Shouldn't the game only return an enemy unit if the enemy unit if the it is visible to the player?
Hi there, this could just be something I'm doing wrong, but when an exception occurs in my onFrame
method, the bot continues to run, just any code in the method after the exception is not run.
For example if I use your example bot, and put the following at the top of onFrame
:
Unit unit = null;
System.out.println(unit.getType().toString();
No errors are printed out, but all units just sit there.
Is there some way to catch these exceptions? It'd be really nice, since I'm using println's to figure out where things are going wrong at the moment :(
I'm using
I want to map my units to the buildings that are producing said unit and was looking for a method to do so. isTraining references getTrainingQueue
but I can't find said method anywhere.
Do you know of another reliable way of finding the unit that's being trained in a building, or the building that a unit is being trained in?
Here http://bwmirror.jurenka.sk/#unitType is stated that each UnitType has single instance.
But simple test gives unexpected result:
Inside onStart() listener:
System.out.println(UnitType.Terran_SCV.whatBuilds().first == UnitType.Terran_Command_Center);
gives me "false", however left and right instance in toString() are indeed "Terran_Command_Center".
Am I missing something?
PS: I'm using latest release version 2.3
No matter how the game ends, the binaries do detect it:
+ Building Zerg_Overlord in Zerg_Larva
Unit morph event: Zerg_Egg from None
+ Building Zerg_Drone in Zerg_Larva
Match ended. <<THE BINARY DETECTED END END std::outed it
Waiting...
failed, disconnecting
Disconnected
Game table mapping not
But the on end callback got never called:
public void onEnd() {
System.out.println("END!");
System.exit(0);
}
Game.getAPM(includeSelects: Boolean)
consistently returns a much higher APM value if invoked as Game.getAPM(false)
than when invoked as Game.getAPM(true)
.
This seems to me to be the wrong way around; bug or by design?
When I try to use:
unit.issueCommand(UnitCommand.build(unit, placeToBuildOn, buildingType));
it allways fails with Error.Invalid_Tile_Position
.
However, when I use:
unit.build(buildingType, placeToBuildOn);
it works. Is there some difference between these two approaches? I've looked into both BWMirror and BWAPI sources, and it seems to me that it should do the same thing.
i.e. in Scala:
def buildSupplyWith(unit: BWUnit) = {
val supplyProvider = unit.getRace.getSupplyProvider
unit.getRace match {
case Race.Zerg => unit.train(supplyProvider)
case _ => unit.build(supplyProvider, game.getBuildLocation(supplyProvider, unit.getTilePosition))
}
}
I get the error
Error:(27, 15) stable identifier required, but bwapi.Race.Zerg found.
case Race.Zerg => unit.train(unitType)
^
In addition, the following compiles just fine, when it shouldn't:
Race.Zerg = null
Method UnitType.Zerg_Drone.supplyRequired() returns 2. I think it should return 1, am I right?
It would be handy if positions coulf be converted to tilepositions and vice versa:
Hello, this problem is described in the FAQ but completely wrongly. If you ever tried to download latest release of BWAPI (4.1.0) you'd see that in the Chaos launcher, the revision number is 4615, not 4625. There is no release with revision number 4625 on the internet.
I can't seem to get the latest versions of BWAPI and BWMirror to work with each other.
I keep getting the following error
Error: Client and Server are not compatible!
Client Revision: XXXX
Server Revision: YYYY
The advice given (previous issues and readme, etc.) is to update both BWMirror and BWAPI. I have tried this and after a bit of experimentation, I've come to the following conclusions:
Client - BWMirror
2.5 = 4709
2.4 = 4615
Server - BWAPI
4.2 = 4708
4.1.1B = 4676
4.1.0B_2 = 4615
As you can see, there are no client-server version matches since BWAPI4.1.0B_2 and BWMirror 2.4. Am I missing a link to a release, or have the version numbers simply been mismatched? Thanks.
Looks like in this version Order
class doesn't have .toString()
method.
I used this method in previous BWAPI
.
Can you add it? It is very helpful for debug purpose.
🙏
This simple example for Protoss builds a probe and checks if the unit type in the training queue is actually a probe. It's toString()
returns probe but it is another object:
import bwapi.*;
public class UnitTypeBug extends DefaultBWListener {
private Mirror mirror = new Mirror();
private Game game;
private Player self;
public void run() {
mirror.getModule().setEventListener(this);
mirror.startGame();
}
@Override
public void onStart() {
game = mirror.getGame();
self = game.self();
}
@Override
public void onFrame() {
for (Unit u: self.getUnits()) {
if (!u.getTrainingQueue().isEmpty()) {
if (u.getTrainingQueue().get(0) != UnitType.Protoss_Probe) {
System.err.println("Unit type mismatch");
}
}
if (!u.isTraining() || u.canTrain(UnitType.Protoss_Probe)) {
u.train(UnitType.Protoss_Probe);
}
}
}
public static void main(String[] args) {
new UnitTypeBug().run();
}
}
It should not print "Unit type mismatch", but it does,
This was a recently requested feature, the implementation of this will require some more changes to the generator as this is not a "visible" method.
( iirc, C++ BWTA::Region is a subclass of vector, so the method is not expicitely defined)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.