我在我的应用程序中使用pthread_create创建了10个线程。分配给每个线程的默认堆栈大小是多少?
我正在尝试调试崩溃,其中我的应用程序崩溃了一个非法指令,其中一个函数指针被重置为0.其中一个指标可能是我的应用程序线程已用完堆栈大小并且它覆盖了函数指针所在的现有堆栈空间。
答案 0 :(得分:1)
有关pthreads的教程,请参阅https://computing.llnl.gov/tutorials/pthreads/。您可以使用attr
创建的pthread_attr_init
参数设置初始堆栈大小。但是,一般情况下,您不希望拥有庞大的堆栈。如果要在堆栈上分配超过几百KB,则可能会发现通过在堆上分配数据并根据需要释放它来更轻松地调试程序。