Let's look at what is happening: Minecraft is trying to do something which returns 0xc0000005
.
In ntstatus.h
, a list of error code definitions, 0xc0000005
is STATUS_ACCESS_VIOLATION
.
MSDN - Analyze Crashes to Find Security Vulnerabilities in Your Apps reports:
Access violation exceptions (STATUS_ACCESS_VIOLATION) are generated by modern processors when a memory access caused by an instruction or program execution does not satisfy certain conditions defined by the processor architecture or memory management unit structures.
So, we now know that Minecraft does something that causes invalid memory access.
But, what exactly is Minecraft doing?
j org.lwjgl.opengl.WindowsContextImplementation.nCreate(Ljava/nio/ByteBuffer;Ljava/nio/IntBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;+0
j org.lwjgl.opengl.WindowsContextImplementation.create(Lorg/lwjgl/opengl/PeerInfo;Ljava/nio/IntBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;+10
j org.lwjgl.opengl.Context.<init>(Lorg/lwjgl/opengl/PeerInfo;Lorg/lwjgl/opengl/ContextAttribs;Lorg/lwjgl/opengl/Context;)V+104
j org.lwjgl.opengl.Display.create(Lorg/lwjgl/opengl/PixelFormat;Lorg/lwjgl/opengl/Drawable;Lorg/lwjgl/opengl/ContextAttribs;)V+88
Here we see, Minecraft tries to allocate an OpenGL Device Context buffer in memory.
The thread mentioned by Ben Blank has a different stack trace and thus is irrelevant.
We first have to get more knowledge about your memory, which you gave:
I noticed that the command that the minecraft.jar file is being run with says that it can have up to 1024mb of ram. I only have ~500mb of ram, so it would be referencing pointers in an unknown location. I also notice a gl issue, which I'm not really sure how to fix.
Given that low amount of memory, I'm going to guess that your graphics card uses 128 MB shared memory which means that it uses RAM memory to operate. I'm guessing that your Windows uses another 100 MB. There is only 250 MB of memory remaining for Minecraft, and your page file.
Minecraft uses from 512 MB to 1 GB, consider that playing Minecraft will cause disk trashing.
VM Arguments:
jvm_args: -Xms512m -Xmx1024m
So, now, where does the problem lie?
"so it would be referencing pointers in an unknown location" -- no. Just because you tell it it's allowed to use 1024 MB doesn't mean it ignores allocation errors when it runs out of space and creates invalid addresses out of thin air to reference. For all I know it wouldn't even matter, Windows would just give it space in the page file. - Matthew Read
This comment on the question is not 100% correct, there are exceptions that don't use the page file.
Exactly, OpenGL Device Context buffers must be in RAM; the solution is to buy more RAM.
I doubt if 1 GB will do the job given that Minecraft can use up to 1 GB; better to be safe than sorry and get 2 GB to avoid future problems. This also makes sure you don't experience disk trashing to the page file, which can have a great impact on the performance...
Or well, I could be all wrong and it could be a driver problem. But seriously, 512 MB isn't enough...
While it's true that heavy use reduces the lifespan of a flash drive, most people rather underestimate how long they last. If you're considering using a flash drive for I/O-intensive tasks, I highly recommend Jeroen Kessel's description of the problem. He's specifically addressing defragmentation, but the second paragraph in particular applies to any kind of disk-heavy operation.
In particular, he says:
In order to wear out a cheap 10,000 cycle flash memory disk in ten years, you would have to write to EVERY BLOCK in the device about 2.7 times per day, every single day.
Minecraft's I/O usage went down dramatically in 1.3 (due to the switch to region files), but is still fairly high due to its frequent saving of chunks. Assuming a disk-wide average of 27 writes per block per day due to very heavy Minecraft play (due to wear leveling, that's about 108 gigabytes of written data for a 4GB drive), even an el-cheapo drive would last at least a year!
Best Answer
Sometimes it feels humiliating answering your own question, but today, I feel quite proud of my work.
|This| is PMC, short for PortableMinecraft. It's a super janky PortableApp I threw together that is configured to work with Minecraft. It downloads the Minecraft Launcher so you don't have to, and it will take care of the rest. It moves files onto the C drive temporarily in order to preserve your precious USB's memory.
PLEASE read the Readme, because it has important information about how the thing works and what little issues it has.