有没有办法找出应用程序挂起的位置而没有完成其功能?我打开了调用堆栈,但它是空的。这是什么意思。有没有人有任何关于调试应用程序何时开始挂起/变得无响应的建议。
编辑:我正在使用Visual Studio 2010
答案 0 :(得分:3)
使用启用所有警告并使用编译器生成调试信息编译您的应用程序。在Linux上,这意味着g++ -Wall -g
。处理源代码,直到你不再收到警告。学习使用调试器(例如Linux上的gdb
),并使用其逐步功能。
但是我们无法帮助你,因为这是依赖于系统的,你没有说出你正在使用什么系统,你没有向我们展示你正在调试的代码。
答案 1 :(得分:2)
当我遇到这种情况时,我发现将Very Sleepy探查器附加到debugee通常可以很容易地识别挂起发生的位置,即使您在发生挂起之后附加它 - 只需查看活动的堆栈帧100%的探查器采样会话(通过“包含%”列对列表进行排序并查看顶部)。
答案 2 :(得分:0)
除了使用调试器之外,还可以通过代码运行探查器。我的VS相当生疏,所以我无法详细说明如何操作,但谷歌可以提供帮助。
由于配置文件中最严格的粒度是功能级别,因此有许多小功能而不是很少的大功能也会有所帮助。
答案 3 :(得分:0)
将日志语句放入代码中。这是耗时的,但某种分而治之的方法应该可以帮助你解决问题。