Oct 14, 2012 4:29 AM
Activision Please Read This It Will Tell You How To Fix The Memory Leak
-
Like (0)
I figured what I would do is come here and explain to you all about this crash. I looked at the log crash file that Dr Watson created and it was basic and plain but I also took the crash dumb file and analyzed the crash. What I found was understandable to why this game crashed. I will not post the entire error log nor the entire crash dumb log because that is really pointless. I will however post the most important areas.
In the log of the crash this part is important.
Application exception occurred:
App: C:\Program Files\Activision\Prototype 2\prototype2.exe (pid=1644)
When: 10/14/2012 @ 01:14:26.687
Exception number: c0000005 (access violation)
This tells that the program crashed at the time given with the code access violation.
Here is what crashed.
function: prototype2engine
1099fa6f 52 push edx
1099fa70 4c dec esp
1099fa71 6a10 push 0x10
1099fa73 6a00 push 0x0
1099fa75 8d442424 lea eax,[esp+0x24]
1099fa79 50 push eax
1099fa7a 51 push ecx
1099fa7b 57 push edi
1099fa7c ffd2 call edx
1099fa7e 8b464c mov eax,[esi+0x4c]
FAULT ->1099fa81 8b08 mov ecx,[eax] ds:0023:00000000=????????
1099fa83 6a00 push 0x0
1099fa85 6a00 push 0x0
1099fa87 8d542418 lea edx,[esp+0x18]
1099fa8b 52 push edx
1099fa8c 53 push ebx
1099fa8d 50 push eax
1099fa8e 8b414c mov eax,[ecx+0x4c]
1099fa91 ffd0 call eax
1099fa93 8b5648 mov edx,[esi+0x48]
1099fa96 8b44da04 mov eax,[edx+ebx*8+0x4]
Here is why it crashed.
*----> Stack Back Trace <----*
WARNING: Stack unwind information not available. Following frames may be wrong.
ChildEBP RetAddr Args to Child
1839f688 1099a827 1839f6c8 1773f9d0 1839f6c8 prototype2engine+0x99fa81
1839f748 1839f7a8 1773f9d0 0000001a 00000000 prototype2engine+0x99a827
00000000 00000000 00000000 00000000 00000000 0x1839f7a8
Now that to most dont explain anything but if you dig deeper and go and study the crash dump.
This is from the crash dump and this shows clearly what is actaully doing the crash.
FAULTING_IP:
prototype2engine!EngineInitialize+2b8bb1
1099fa81 8b08 mov ecx,dword ptr [eax]
The prototype2engine.dll file has a function in side of it or a call called EngineInitialize. That function or that call what ever it maybe could even be a method or variable or whatever is what is causing this error.
Now here is why. Again this is from the crash dump.
STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
1839f688 1099a827 1839f6c8 1773f9d0 1839f6c8 prototype2engine!EngineInitialize+0x2b8bb1
1839f748 1839f7a8 1773f9d0 0000001a 00000000 prototype2engine!EngineInitialize+0x2b3957
00000000 00000000 00000000 00000000 00000000 0x1839f7a8
Now to be most honest any real programmer can see something is wrong here including me.
I am assuming that the EngineInitialize function or sub route or what ever it is is used to initialize the engine or dll or what not. The issue is simple.
This is trying to run twice back to back which if I am correct when its ran once its already initialized yet nothing is sent to that dll to say hey buddy its already done so fall back on this or whatever thus causing the prototype2engine.dll file to become unstable thus causing The error that we all have seen ever sence this game was released.
So with my understanding somewhat of this type of error I am assuming two things here. 1 that function that is trying to run twice cant or needs to be ran only one time or it does not check first if its already ran. 2 It is trying to access the codes from written memory yet there is no codes to access.
Trust me I will cause this game to error 40 times today and sit and study the codes and I will come back and once again display each and every code.
For those that do read this if your crash logs look the same then study them and perhaps we can help activision do their job lol or hell perhaps we can do their job for them and make them look bad.
Further Analysis
As stated in the previous post I would make it error out many of times and study the error logs and crash dumps and so I have for the last few hours and It crashed 3 times on me. Let me state that I did not at all do any given tricks or temp fixes that was stated to reduce this crash.
The first crash is from me free roaming and destroying the city. Not doing any missions or side missions or anything at all.
FAULTING_IP:
prototype2engine!EngineInitialize+2b8bb1
1099fa81 8b08 mov ecx,dword ptr [eax]
ExceptionAddress: 1099fa81 (prototype2engine!EngineInitialize+0x002b8bb1)
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s".
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s".
PRIMARY_PROBLEM_CLASS: WRONG_SYMBOLS
STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
1839f688 1099a827 1839f6c8 172ca960 1839f6c8 prototype2engine!EngineInitialize+0x2b8bb1
1839f748 1839f7a8 172ca960 0000001a 00000000 prototype2engine!EngineInitialize+0x2b3957
00000000 00000000 00000000 00000000 00000000 0x1839f7a8
SYMBOL_NAME: prototype2engine!EngineInitialize+2b8bb1
The second crash happened when I was doing the mission Operation FlyTrap. I was at the end getting ready to head to the church and bingo the game crashed before I made it to the church.
FAULTING_IP:
prototype2engine!EngineInitialize+2b8255
1099f125 8b08
ExceptionAddress: 1099f125 (prototype2engine!EngineInitialize+0x002b8255)
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s".
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s".
PRIMARY_PROBLEM_CLASS: WRONG_SYMBOLS
STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
1839f60c 4fdf5e25 001b0a04 8007000e 4fe11c81 prototype2engine!EngineInitialize+0x2b8255
00000000 00000000 00000000 00000000 00000000 d3d9!CheckFullscreen+0x75
SYMBOL_NAME: prototype2engine!EngineInitialize+2b8255
The third and last error happened after I loaded the game back up and completed the mission Operation Flytrap. I was again free roaming and destroying the city when bingo crash.
Oh but before it crashed I noticed many things happening. The sonar ability for example it was not working. I didnt even see the red circle and the graphic image frose but was able to turn the mouse and make the map move. I also noticed that heller's body was not even loading up lol. When I consumed someone it seemed as if the game frose yet it didnt. The images wasnt showing up or the videos.
FAULTING_IP:
prototype2engine!EngineInitialize+2b8255
1099f125 8b08 mov ecx,dword ptr [eax]
ExceptionAddress: 1099f125 (prototype2engine!EngineInitialize+0x002b8255)
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s".
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s".
PRIMARY_PROBLEM_CLASS: WRONG_SYMBOLS
STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
1839f60c 4fdf5e25 001b0a04 8007000e 4fe11c81 prototype2engine!EngineInitialize+0x2b8255
00000000 00000000 00000000 00000000 00000000 d3d9!CheckFullscreen+0x75
SYMBOL_NAME: prototype2engine!EngineInitialize+2b8255
I noticed that the two crashed I got from the mission and after the mission was 100% the same.
In conclusion I think and I am not sure on this but I think that the issue is the direct x interface. From the crash logs and dumps you can see the crash happens from the file prototype2engine.dll normally when the code engineinitialize is used for whatever reason. From these last 2 errors I notice that CheckFullscreen was sent to engineinitialize code thats in the prototype2engine.dll file and for some reason caused this error.
In addition to all this I believe this would mean sloppy or improper or just down right bad programming and error handling. below is a mini crash dump of this error.
Those that get this error sorry to say there is no fix cant be a fix because activision needs to fix the coding that is causing the issue. Those that dont have this issue I am sure if I want to study more can tell why some do and some dont.
FAULTING_IP:
prototype2engine!EngineInitialize+2b8255
1099f125 8b08 mov ecx,dword ptr [eax]
EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 1099f125 (prototype2engine!EngineInitialize+0x002b8255)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 00000000
Attempt to read from address 00000000
DEFAULT_BUCKET_ID: WRONG_SYMBOLS
PROCESS_NAME: prototype2.exe
ADDITIONAL_DEBUG_TEXT:
You can run '.symfix; .reload' to try to fix the symbol path and load symbols.
FAULTING_MODULE: 7c900000 ntdll
DEBUG_FLR_IMAGE_TIMESTAMP: 4f871228
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s".
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at "0x%08lx" referenced memory at "0x%08lx". The memory could not be "%s".
EXCEPTION_PARAMETER1: 00000000
EXCEPTION_PARAMETER2: 00000000
READ_ADDRESS: 00000000
FOLLOWUP_IP:
prototype2engine!EngineInitialize+2b8255
1099f125 8b08 mov ecx,dword ptr [eax]
APP: prototype2.exe
PRIMARY_PROBLEM_CLASS: WRONG_SYMBOLS
BUGCHECK_STR: APPLICATION_FAULT_WRONG_SYMBOLS
LAST_CONTROL_TRANSFER: from 4fdf5e25 to 1099f125
STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
1839f60c 4fdf5e25 001b0a04 8007000e 4fe11c81 prototype2engine!EngineInitialize+0x2b8255
00000000 00000000 00000000 00000000 00000000 d3d9!CheckFullscreen+0x75
STACK_COMMAND: ~5s; .ecxr ; kb
SYMBOL_STACK_INDEX: 0
SYMBOL_NAME: prototype2engine!EngineInitialize+2b8255
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: prototype2engine
IMAGE_NAME: prototype2engine.dll
BUCKET_ID: WRONG_SYMBOLS
FAILURE_BUCKET_ID: WRONG_SYMBOLS_c0000005_prototype2engine.dll!EngineInitialize
WATSON_STAGEONE_URL: http://watson.microsoft.com/StageOne/prototype2_exe/0_0_0_0/4f871176/prototype2e ngine_dll/0_0_0_0/4f871228/c0000005/0099f125.htm?Retriage=1
WATSON_IBUCKET: -1207624160
WATSON_IBUCKETTABLE: 1
Followup: MachineOwner
This is the error in raw form from the log file.
function: prototype2engine
1099f112 51 push ecx
1099f113 52 push edx
1099f114 53 push ebx
1099f115 ffd0 call eax
1099f117 eb16 jmp prototype2engine+0x99f12f (1099f12f)
1099f119 8b464c mov eax,[esi+0x4c]
1099f11c c1e704 shl edi,0x4
1099f11f 57 push edi
1099f120 6a00 push 0x0
1099f122 8d7e6c lea edi,[esi+0x6c]
FAULT ->1099f125 8b08 mov ecx,[eax] ds:0023:00000000=????????
1099f127 57 push edi
1099f128 52 push edx
1099f129 8b514c mov edx,[ecx+0x4c]
1099f12c 50 push eax
1099f12d ffd2 call edx
1099f12f 8b4c243c mov ecx,[esp+0x3c]
1099f133 8b542438 mov edx,[esp+0x38]
1099f137 8b442430 mov eax,[esp+0x30]
1099f13b 894804 mov [eax+0x4],ecx
1099f13e 8b7d00 mov edi,[ebp]
*----> Stack Back Trace <----*
WARNING: Stack unwind information not available. Following frames may be wrong.
ChildEBP RetAddr Args to Child
167c8620 00000010 00000010 00000100 00000008 prototype2engine+0x99f125
Maybe all of this is a DirectX bug and this is why the game won't get patched? Maybe Microsoft should patch something?
Any Idea how to fix this game having problems starting with a keyboard plugged in
Sorry, no idea but how about using one of the old PS/2 connector keyboards?
Havent got one, but i shouldn't really need to and I would rather keep using my Mechanical keyboard in the usb slots than play this load of doodie now just had enough of the game and Steam trying to fob me off thanks for reply
The post that I started is in hopes that activision would see it and read it and just maybe make a patch that would fix the issue.
This game is a good game nice and what not but its pc issues that it has is not worth the time of day to even buy this game. Now as for the post of the guy that said maybe its a directx bug that is not correct and why because well some people that has the same issue and error uses same directx versions and even use the directx 11 version and still same issue. So far most of the issues are on 32bit systems. A memory leak is when the game runs up way to much memory. If you would run the game and look at the memory it uses it really wouldnt be to high.
Anyways if you understand the error log I posted you would notice that this error has nothing what so ever to do with directx or any video card driver. The error takes place when the game ask the prototype2engine.dll file for frames that is not there. Now microsoft did not create the file prototype2engine.dll nor did they create the frames that the game is asking for. Look at the error log more clearly and you will see this error is from the game it self and the game files it self. This issue should be looked into by the creator or creator's of this game not by microsoft. The issue is that the creator or creator's are failing to comment or even look into trying to fix this issue.
I didn't mean to question your analysis. I was just guessing. Thansk for the clarification that it's not DirectX.