When I try to create a new ReportDocument from .NET the application exists with no other information. There is an event log entry similar to this one:
Faulting application CrystalTest1.vshost.exe, version 9.0.21022.8, time stamp 0x47316898, faulting module unknown, version 0.0.0.0, time stamp 0x00000000, exception code 0xc0000005, fault offset 0x04525da0, process id 0x10fc, application start time 0x01c9c2d6d624913d.
Investigating more I tracked down that the error happens when I try to create various COM objects from Crystal Reports (for example by running the following vbscript: Set o = CreateObject("CrystalClientDoc.ReportClientDocument")). The error is always an Access Violation in cachemanager.dll on address 3f8691b5:
3F869172 push ebx
3F869173 push esi
3F869174 push edi
3F869175 push 3F873464h
3F86917A call dword ptr ds:[3F86C04Ch]
3F869180 mov ebx,dword ptr [esp+10h]
3F869184 mov esi,eax
3F869186 mov eax,dword ptr [esi]
3F869188 mov ecx,esi
3F86918A mov dword ptr [esi+4],ebx
3F86918D call dword ptr [eax+8]
3F869190 push esi
3F869191 lea edi,[esi+14h]
3F869194 push eax
3F869195 mov ecx,edi
3F869197 call 3F8690EE
3F86919C mov edi,dword ptr [edi]
3F86919E push edi
3F86919F push 0FFFFFFFCh
3F8691A1 push ebx
3F8691A2 call dword ptr ds:[3F86C254h]
3F8691A8 push dword ptr [esp+1Ch]
3F8691AC push dword ptr [esp+1Ch]
3F8691B0 push dword ptr [esp+1Ch]
3F8691B4 push ebx
3F8691B5 call edi
3F8691B7 pop edi
3F8691B8 pop esi
3F8691B9 pop ebx
3F8691BA ret 10h
The full stack trace is:
00455B60()
cachemanager.dll!3f8691b7()
[Frames below may be incorrect and/or missing, no symbols loaded for cachemanager.dll]
user32.dll!7735f8d2()
user32.dll!7735f794()
user32.dll!7735f73d()
user32.dll!77360817()
user32.dll!773539f7()
ntdll.dll!771f99ce()
user32.dll!77353cf7()
user32.dll!77353b94()
user32.dll!77353cc3()
atl71.dll!7c12c51d()
atl71.dll!7c12c633()
atl71.dll!7c121653()
user32.dll!77353d9a()
cachemanager.dll!3f86922f()
cachemanager.dll!3f86949e()
cachemanager.dll!3f869600()
cachemanager.dll!3f868aec()
msvcr71.dll!7c349565()
kernel32.dll!760e4911()
ntdll.dll!771de4b6()
ntdll.dll!771de489()
The address called at 3f8691b5 seem to always contain the following data in my case:
00455B51 00 00 add byte ptr [eax],al
00455B53 00 00 add byte ptr [eax],al
00455B55 00 00 add byte ptr [eax],al
00455B57 00 DA add dl,bl
00455B59 44 inc esp
00455B5A 44 inc esp
00455B5B 3A 00 cmp al,byte ptr [eax]
00455B5D 00 00 add byte ptr [eax],al
00455B5F 8B db 8bh
00455B60 C7 44 24 04 70 1F F4 01 mov dword ptr [esp+4],1F41F70h
00455B68 E9 4E 39 41 3F jmp 3F8694BB
00455B6D 00 00 add byte ptr [eax],al
00455B6F 00 DF add bh,bl
00455B71 44 inc esp
00455B72 44 inc esp
00455B73 3A 00 cmp al,byte ptr [eax]
00455B75 00 00 add byte ptr [eax],al
00455B77 88 E0 mov al,ah
00455B79 66 45 inc bp
00455B7B 00 90 5B 45 00 B8 add byte ptr [eax-47FFBAA5h],dl
The data and the address seem to be always the same in my case.
I am running 32-bit Vista Ultimate on a dual core Intel Centrino CPU. I have a Crystal Reports Deployment suite installed. The cachemanager.dll is 106,496 bytes and the file version is 11.5.8.998
Pelase help!
Edited by: Hristo Pavlov on Apr 22, 2009 2:45 AM