pthread堆栈大小自动增加?

时间:2013-11-14 06:41:10

标签: multithreading android-ndk posix

我正在研究Android NDK中的pthread,它通过网络处理视频数据。

我遇到的问题是'检测到堆栈损坏:已中止'。所以我在application.mk中设置了-fstack-check,再次设置了FATAL SIGNAL 11 blabla ..

我在这个问题上的结论是关于堆栈大小。

当我使用窗口线程时,其堆栈大小默认设置为1kb,自动增加。

但是,我不知道pthread。

pthread会自动增加堆栈大小吗?

P.S。我将此线程附加到JavaVM。

1 个答案:

答案 0 :(得分:0)

现货Android上,pthread堆栈默认分配为1MB。 (由于系统的工作方式,只有实际触摸的堆栈部分才能获得物理页面,因此对于许多线程,实际上只有几KB被使用。)

“堆栈损坏”消息表明某些东西已经破坏了堆栈,而不是你已经失败了。遇到这种情况的一种方法是注销堆栈分配的数组的末尾。 decode the stack trace进入日志文件并查看失败时的方法可能很有用。