有时候我的应用程序崩溃了以下堆栈跟踪:
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 ++代码和上下文!但为什么呢?
如果有人有想法帮我调试这个?
感谢您的帮助
答案 0 :(得分:1)
每次我得到这种堆栈并删除代码都会有效,这是因为我做了... 堆栈溢出:)
你很可能在筹码上有太大的东西。
检查函数中某处是否有太大的对象,通常在main()函数中。确保始终在堆上分配大对象(管理器或类似的东西)。