Sometimes I got a crash of my application with the following stack trace :

  atiocl.dll!0f6c463a()
  [Frames below may be incorrect and/or missing, no symbols loaded for atiocl.dll]
  atiocl.dll!0f2ed724()
  atiocl.dll!0f2ed82c()
  atiocl.dll!0f2ad8cb()
  OpenCL.dll!000a172c()
  pureStudio.exe!__fseeki64()  + 0xdec0 bytes C++
  pureStudio.exe!__fseeki64()  + 0x9b6f bytes C++
  pureStudio.exe!__fseeki64()  + 0x1f027 bytes C++
  msvcr90d.dll!5af8327f()
  ntdll.dll!77bb041d()
  ntdll.dll!77b79d45()

It is a memory access violation ! Unfortunately I have no idea of the problem...

For information I use VS 2008 + QT + BOOST + OpenCL

What is strange is that I know "where" the problem occur... I just have to remove a specific line of code... and no more error (But the soft doesn't do what it should :-P)

The call is on "my code" but this time I don't see my methods in the stack !!!! (I'm able to trace others code, other crashs before...)

I'm just able to show the "dissassembly" where I see my method, but not the C++ code and context !!! But why ?

If someone has an idea to help me to debug this ?

Thanks for your help

有帮助吗?

解决方案

Each time I got this kind of stack and removing code makes it works, it was because I did a ... stack-overflow :)

It's very probable that you have something too big on the stack.

Check that you don't have a too big object somewhere in a function, often in the main() function. Make sure big objects (managers or things like that) are always allocated on the heap.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top