0

我为电信应用产品工作。在过去的几天里,我的 C++ 代码遇到了问题。我的任务是让产品在HP server with RHEL(Red Hat Enterprise Linux)操作系统上运行。而且我正面临应用程序的每个流程的核心转储。对于每个核心转储,堆栈由于某种未知原因而损坏。但是相同的代码在Windriver 2.0 as well as 4.0. 然而,在进行一些研发时,我增加了堆栈大小10MB to unlimited,现在我不再看到核心转储了。但是 windriver 可以正常使用 even 8MB。我认为它是一些编译器特定的问题。如果有人对这个问题有所了解,那将有很大帮助。

4

1 回答 1

0

您需要将堆栈大小设置为无限制的编译器似乎比 Windriver 使用更多的堆栈空间。考虑到堆栈的使用高度依赖于编译器的优化方式,这并不奇怪。例如,内联函数会减少堆栈的使用。

于 2012-09-26T05:27:01.123 回答