【问题标题】:Windows QueueUserWorkItem C++ Release mode issueWindows QueueUserWorkItem C++ 发布模式问题
【发布时间】:2011-07-25 13:45:55
【问题描述】:

我有 C++ 代码,它使用 QueueUserWorkItem 来调用一个函数,该函数来自一个调用 winsock 的包装类接受。这在调试中工作正常,如果我使用 Dependency Walker 的 Start Profile 选项运行发布可执行文件,它也可以工作。但是,如果我正常运行发布可执行文件,它会在调用 QueueUserWorkItem 时崩溃。一旦它调用该函数,应用程序就会退出。执行永远不会到达我传递给 QueueUserWorkItem 的函数,但是函数指针是有效的。

有谁知道任何可能导致 QueueUserWorkItem 在发布模式下崩溃但无法调试的情况?

【问题讨论】:

  • 涉及 QUWI 并受工具影响的崩溃通常是由线程竞争引起的。改变的时机可以触发它们。

标签: c++ windows release threadpool


【解决方案1】:

有没有人知道任何可能导致<random function> 在发布模式下崩溃但无法调试的事情?

是的,缓冲区溢出。 Debug build 周围有保护措施,您可以覆盖它们,但在 Release 模式下,您可能会覆盖重要的内存。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-08-24
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多