0

有时我的应用程序崩溃并带有以下堆栈跟踪:

  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()

这是内存访问冲突!不幸的是我不知道这个问题......

有关信息,我使用 VS 2008 + QT + BOOST + OpenCL

奇怪的是我知道问题发生在“哪里”......我只需要删除特定的代码行......并且没有更多错误(但是软件没有做它应该做的事情:-P)

调用是在“我的代码”上,但这次我没有在堆栈中看到我的方法!!!!(我能够追踪其他代码,之前的其他崩溃......)

我只能在我看到我的方法的地方显示“反汇编”,而不是 C++ 代码和上下文!但为什么 ?

如果有人有想法帮我调试这个?

谢谢你的帮助

4

1 回答 1

1

每次我得到这种堆栈并删除代码使其工作时,这是因为我做了一个......堆栈溢出:)

很有可能你的堆栈上有太大的东西。

检查您在函数的某处没有太大的对象,通常在 main() 函数中。确保总是在堆上分配大对象(管理器或类似的东西)。

于 2011-02-22T10:37:48.053 回答