Visual Studio Debugger

时间:2015-06-01 04:42:09

标签: visual-studio-2013 gpu visual-studio-debugging directx-11

在使用专用GPU运行VS时,我遇到了Visual Studio调试器的一些奇怪行为。

奇怪的是,当我终止正在构建的程序时,调试器会继续运行。在使用集成显卡运行VS时,我看不到这一点。另外 - 我检查是否有线程或COM对象仍然存在,并且有一个活动线程,但没有COM引用。

我认为这很奇怪。你有没有经历过这样的经历?我错过了一些明显的东西吗使用专用GPU运行VS时是否有要更改的设置或特殊规则?

它并没有真正伤害任何东西 - 但它会让我的OCD爆炸。 ;)

提前感谢您的建设性意见:D

最诚挚的 Alpha Silverback

1 个答案:

答案 0 :(得分:0)

我一直在冲浪很长时间才找到答案。使用不同的图形加速器运行应用程序之间的区别仅在于当应用程序使用专用GPU运行时WinMain返回后线程不会死亡。

要解决这个问题 - 我通过试验明确调用任何活动对象的析构函数,然后在WinMain的返回调用之前调用std :: exit(返回代码)将正确地杀死所有线程。但是,不同的硬件产生不同的行为仍然很奇怪。这个解决方案适用于两者。

**Example**:
WinMain(...){
.
.
.
object.~Class();
std::exit( return-code );
//return return-code;
}

我不喜欢这个答案,因为它不应该是必要的。

如果您找到了另一种方法,请确保添加解决方案。提前谢谢。

最诚挚的, Alpha Silverback