无法调试某些代码? MSVC 的堆栈很奇怪?

发布于 2024-10-19 03:43:40 字数 787 浏览 7 评论 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++ 代码和上下文!但为什么 ?

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

感谢您的帮助

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我不在是我 2024-10-26 03:43:40

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

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

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文