Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 堆栈溢出错误:堆栈大小16KB_Android_Multithreading_Android Source - Fatal编程技术网

Android 堆栈溢出错误:堆栈大小16KB

Android 堆栈溢出错误:堆栈大小16KB,android,multithreading,android-source,Android,Multithreading,Android Source,在Android 5.1.1版本中,当应用程序试图创建堆栈大小为“1024000”的线程时,我面临“StackOverflowerError:stack size 16KB”的问题。下面是崩溃消息 但当堆栈大小向上舍入1024时,这个问题就消失了。(1025024). 在下面的示例中,m_uStackSize是堆栈大小 我尝试在libc.so中调试线程调用。但目前还没有线索。任何想法都将不胜感激 请使用下面的链接回溯日志 附件 编辑1: pthread_attr_t threadAttr

在Android 5.1.1版本中,当应用程序试图创建堆栈大小为“1024000”的线程时,我面临“StackOverflowerError:stack size 16KB”的问题。下面是崩溃消息

但当堆栈大小向上舍入1024时,这个问题就消失了。(1025024). 在下面的示例中,m_uStackSize是堆栈大小

我尝试在libc.so中调试线程调用。但目前还没有线索。任何想法都将不胜感激

请使用下面的链接回溯日志

附件

编辑1:

pthread_attr_t     threadAttr;

struct sched_param schedParams;

VPTYPE_RETURN      result;



pthread_attr_init(&threadAttr);



pthread_attr_setstacksize(&threadAttr, m_uStackSize);

pthread_attr_setdetachstate(&threadAttr, PTHREAD_CREATE_DETACHED);

pthread_attr_setschedpolicy(&threadAttr, SCHED_OTHER);



int priMax = sched_get_priority_max(SCHED_OTHER);

int priMin = sched_get_priority_min(SCHED_OTHER);



schedParams.sched_priority = priMin + (((255 - m_uPriority) * (priMax - priMin)) / 255);

pthread_attr_setschedparam(&threadAttr, &schedParams);



result = pthread_create(&m_threadHandle, &threadAttr, (void*(*)(void*))staticEntryPoint, this);



pthread_attr_destroy(&threadAttr);
还有一件事需要注意。我正在为Android设备开发BSP。此代码示例来自应用程序,该应用程序运行时与其他标准Android设备和手机没有任何问题

所以BSP似乎有问题,从崩溃消息中我可以看到它在libc中

堆栈跟踪

信号6(SIGABRT),代码-6(SIU TKILL),故障地址--------

中止消息:“art/runtime/thread.cc:1106]不应出现挂起的异常:java.lang.StackOverflower错误:堆栈大小16KB”

r0 00000000 r1 00000643 r2 0000000 6 r3 00000000

r4 a3305db8 r5 0000000 6 r6 0000000 2 r7 00000 10C

r8 0000000 1 r9 b4f4f550 sl a3b13400 fp a3b34900

ip 00000643 sp a3305310 lr b6e98fc1 pc b6ebbe58 cpsr 60070010

回溯:

00 pc 00039e58/system/lib/libc.so(tgkill+12)

01 pc 00016fbd/system/lib/libc.so(pthread_kill+52)

02 pc 00017bcf/system/lib/libc.so(升高+10)

03 pc 0001439d/system/lib/libc.so(u libc_android_abort+36)

04 pc 00012a3c/system/lib/libc.so(中止+4)

05 pc 00226033/system/lib/libart.so(art::Runtime::Abort()+170)

06 pc 000a72e9/system/lib/libart.so(art::LogMessage::~LogMessage()+1360)

07 pc 0025629d/system/lib/libart.so(art::verifier::MethodVerifier::GetQuickInvokedMethod(art::Instruction const*,art::verifier::RegisterLine*,bool)+280)

08 pc 0025a66b/system/lib/libart.so(art::verifier::MethodVerifier::VerifyInvokeVirtualQuickArgs(art::Instruction const*,bool)+50)

09 pc 0025e7c3/system/lib/libart.so(art::verifier::MethodVerifier::CodeFlowVerifyInstruction(unsigned int*)+4918)

10 pc 00260323/system/lib/libart.so(art::verifier::MethodVerifier::CodeFlowVerifyMethod()+142)

11 pc 002607c7/system/lib/libart.so(art::verifier::MethodVerifier::VerifyCodeFlow()+614)

12 pc 0026093f/system/lib/libart.so(艺术::验证器::方法验证器::验证()+130)

13 pc 00261feb/system/lib/libart.so(art::verifier::MethodVerifier::FindLocksAtDexPc(art::mirror::ArtMethod*,unsigned int,std::u 1::vector 14 pc 001f41e5/system/lib/libart.so(艺术::监视器::VisitLocks(艺术::StackVisitor*,void()(艺术::镜像::对象,void*),void*,bool)+252)

15 pc 00233a07/system/lib/libart.so(art::StackDumpVisitor::VisitFrame()+374)

16 pc 002dbeb/system/lib/libart.so(art::StackVisitor::WalkStack(bool)+702)

17 pc 002361c9/system/lib/libart.so(艺术::线程::转储(标准::基本线程>&)常量+224)

18 pc 0023f31d/system/lib/libart.so(art::ThreadList::DumpLocked(std:_1::basic_ostream>&)+120)

19 pc 00225d91/system/lib/libart.so(art::AbortState::Dump(std:uu 1::basic_uostream>&)+272)

20 pc 00225fdb/system/lib/libart.so(art::Runtime::Abort()+82)

21 pc 000a72e9/system/lib/libart.so(art::LogMessage::~LogMessage()+1360)

22 pc 00233d85/system/lib/libart.so(艺术::线程::AssertNoPendingException()常量+396)

23 pc 0023940d/system/lib/libart.so(art::Thread::CreatePeer(char const*,bool,_jobject*)+456)

24 pc 0023a265/system/lib/libart.so(艺术::线程::附加(char const*,bool,_jobject*,bool)+236)

25 pc 00223309/system/lib/libart.so(art::Runtime::AttachCurrentThread(char const*,bool,_jobject*,bool)+16)

26 pc 001bccf1/system/lib/libart.so(art::JII::AttachCurrentThread(_JavaVM*,_JNIEnv**,void*)+216)

27 pc 000c0773/system/lib/libart.so(art::CheckJII::AttachCurrentThread(_JavaVM*,_JNIEnv**,void*)+110)

28 pc 00039865/data/app/us.my.test.app-1/lib/arm/libXyclops.so(VPThreadInfo::entryPoint()+36)

29 pc 000398c3/data/app/us.my.test.app-1/lib/arm/libXyclops.so(VPThreadInfo::staticEntryPoint(void*)+6)

30 pc 0001674b/system/lib/libc.so(u pthread_start(void*)+30)


31 pc 000146fb/system/lib/libc.so(uu start_thread+6)

请发布一些代码,就像目前一样-您的问题不是很清楚。Stacktrace也有帮助。请将Stacktrace放在这里,不要链接到其他网站,包括DropBox。我们仍在等待codeHi。感谢您的回复。我已经添加了代码和Stacktrace。有关此问题的更多信息。此问题仅发生在工程建筑中对于用户生成和用户调试生成,此问题不会发生。