如何解决调试哪个析构函数冻结了我的函数的返回
我有一个返回int的函数,但是在其中使用了一个名为Handler
的对象:
int handler() {
Handler myHandler;
//...
return 0;
}
该函数永远不会返回,因为它被卡在Handler销毁上。我做到了:
#define ALOGV(...) __android_log_print(ANDROID_LOG_VERBOSE,LOG_TAG,__VA_ARGS__)
class Handler{
Handler(){}
~Handler(){ALOGV("destructing handler...")}
//some private members
};
我可以在Android的JNI输出上看到"destrucing handler..."
,但是该函数从不返回值。这意味着myHandler
的销毁永远不会结束。我将ALOGV
放置在Handler
中包含的所有对象的析构函数中,也放置在这些对象包含的所有对象中,但是我看不到任何~Handler
的日志。 / p>
__android_log_print
是否正在缓冲打印调用?
我的假设是否错误,那就是我应该在销毁对象之前查看每个析构器的输出?
要销毁处理程序时,它首先调用其析构函数,然后调用其拥有的每个对象的析构函数,后者应调用其析构函数并在屏幕上打印。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。