找出应用程序挂起的位置

时间:2011-11-12 10:07:34

标签: c++ visual-studio-2010 debugging stack

有没有办法找出应用程序挂起的位置而没有完成其功能?我打开了调用堆栈,但它是空的。这是什么意思。有没有人有任何关于调试应用程序何时开始挂起/变得无响应的建议。

编辑:我正在使用Visual Studio 2010

4 个答案:

答案 0 :(得分:3)

使用启用所有警告并使用编译器生成调试信息编译您的应用程序。在Linux上,这意味着g++ -Wall -g。处理源代码,直到你不再收到警告。学习使用调试器(例如Linux上的gdb),并使用其逐步功能。

但是我们无法帮助你,因为这是依赖于系统的,你没有说出你正在使用什么系统,你没有向我们展示你正在调试的代码。

阅读How To Debug Small Programs

答案 1 :(得分:2)

当我遇到这种情况时,我发现将Very Sleepy探查器附加到debugee通常可以很容易地识别挂起发生的位置,即使您在发生挂起之后附加它 - 只需查看活动的堆栈帧100%的探查器采样会话(通过“包含%”列对列表进行排序并查看顶部)。

答案 2 :(得分:0)

除了使用调试器之外,还可以通过代码运行探查器。我的VS相当生疏,所以我无法详细说明如何操作,但谷歌可以提供帮助。

由于配置文件中最严格的粒度是功能级别,因此有许多小功能而不是很少的大功能也会有所帮助。

答案 3 :(得分:0)

将日志语句放入代码中。这是耗时的,但某种分而治之的方法应该可以帮助你解决问题。