Hi,
I have a problem with my code at the moment but can't find it so I decided to give PIX a try (my first time using that tool).
But this didn't give me any good results, in fact it looks like PIX crashes. When I attach a debugger to my program running in PIX I can see that it stopped somewhere in PIXHelper.dll. The Call Stack looks like this:
PIXHelper.dll!CArrayList::EnsureSpace() + 0x72 bytes
PIXHelper.dll!CArrayList::Add() + 0x12 bytes
PIXHelper.dll!CHookedObject::AddChild() + 0x15 bytes
PIXHelper.dll!CHookMgr::CreateHookedObjectEx() + 0x77 bytes
PIXHelper.dll!CHookedD3DX9Top::D3DXCreateEffectEx() + 0x4e bytes
PIXHelper.dll!CSpyHookedD3DX9Top::D3DXCreateEffectEx() + 0x7f bytes
PIXHelper.dll!HookedD3DXCreateEffectEx() + 0x50 bytes
PIXHelper.dll!HookedD3DXCreateEffectEx_36Debug() + 0x2a bytes
D3DX9d_36.dll!_D3DXCreateEffect@36() + 0x27 bytes
PIXHelper.dll!CHookedD3DX9Top::D3DXCreateEffect() + 0x2f bytes
PIXHelper.dll!CSpyHookedD3DX9Top::D3DXCreateEffect() + 0x78 bytes
PIXHelper.dll!HookedD3DXCreateEffect() + 0x4d bytes
PIXHelper.dll!HookedD3DXCreateEffect_36Debug() + 0x27 bytes
> SampleApplication.exe!gfx::D3D9ShaderProgram::Compile() Line 27 + 0x57 bytes C++
It stops on a "D3DXCreateEffect" call in my D3D9ShaderProgram class saying than an unhandled exception occurred.
First-chance exception at 0x00269600 (PIXHelper.dll) in SampleApplication.exe: 0xC0000005: Access violation reading location 0x80000000.
Unhandled exception at 0x00269600 (PIXHelper.dll) in SampleApplication.exe: 0xC0000005: Access violation reading location 0x80000000.
PIX Diagnostic Log:
PIX Logfile created at: 12:38:29 AM
Frame 000001 ....PRE: Frame(1)
Trigger 'Program Start' fired
Created event tracing log file
Created PIXRun file at: C:\Users\jffortin\AppData\Local\Temp\PIX92E2.tmp
D3DX: (INFO) Using AMD optimizations
Direct3D9: (INFO) :Direct3D9 Debug Runtime selected.
Direct3D9: (INFO) :======================= Hal HWVP device selected
Direct3D9: (INFO) :HalDevice Driver Style b
Direct3D9: (INFO) :Using FF to VS converter
Direct3D9: (INFO) :Using FF to PS converter
Direct3D9: (INFO) :Enabling multi-processor optimizations
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: DebugSetMute(TRUE)
Frame 000001 ........POST: <> DebugSetMute(TRUE)
Frame 000001 ........PRE: DebugSetMute(FALSE)
Frame 000001 ........POST: <> DebugSetMute(FALSE)
Frame 000001 ........PRE: D3DXCreateEffect(0x0DCCEF00, 0x02864958, 2390, NULL, NULL, 0x00000000, NULL, 0x0028E988, 0x0017F9C0)
Frame 000001 ............PRE: D3DXCreateEffectEx(0x0DCCEF00, 0x02864958, 2390, NULL, NULL, NULL, 0x00000000, NULL, 0x0017F29C, 0x0017F9C0)
Frame 000001 ................PRE: Direct3DShaderValidatorCreate9()
Frame 000001 ................POST: <0x005707E0> Direct3DShaderValidatorCreate9()
Frame 000001 ................PRE: Direct3DShaderValidatorCreate9()
Frame 000001 ................POST: <0x005707E0> Direct3DShaderValidatorCreate9()
Frame 000001 ................PRE: DebugSetMute(TRUE)
Frame 000001 ................POST: <> DebugSetMute(TRUE)
Frame 000001 ................PRE: DebugSetMute(FALSE)
Frame 000001 ................POST: <> DebugSetMute(FALSE)
Frame 000001 ................PRE: DebugSetMute(TRUE)
Frame 000001 ................POST: <> DebugSetMute(TRUE)
Frame 000001 ................PRE: DebugSetMute(FALSE)
Frame 000001 ................POST: <> DebugSetMute(FALSE)
An unhandled exception occurred.
Closing Run File
The whole application run correctly without PIX, I'm currently running with the Debugging runtime and the debug output level almost to max (was just showing redundant state calls at max).
I'm running Vista 64-bits but running PIX 32-bits (along with my 32-bits application). With a GeForce 7900GS with latest instrumentation drivers from NVidia (was also crashing with the latest "normal" drivers from NVidia).
... I'm stuck to that point now. Trying to figure out if I can do anything to fix that and hoping someone on these forum can guide me.
JFF