簡體   English   中英

使用gcc-4.8.5編譯時,Raspberry Pi上未捕獲C ++異常,但可用於gcc-4.6.4

[英]C++ Exceptions not being caught on Raspberry Pi when compiled with gcc-4.8.5 but works with gcc-4.6.4

編輯:這個問題不是我的代碼,它已經在許多其他問題上進行了測試,沒有問題。 這是一個gcc交叉編譯問題。

我在Ubuntu x64上交叉編譯帶有g ++的大型C ++程序,以在Raspberry Pi 2上運行。使用gcc-4.6.4時,一切似乎正常。 使用gcc-4.8.5時,異常似乎正在泄漏並導致程序中止。 我已經嘗試過使用gcc-4.8.5捕獲異常的最小示例,並且最小情況似乎確實可以正常工作。 我的實際程序要復雜得多,似乎異常捕獲在某處丟失了。

我缺少一些可以改善異常處理的g ++設置嗎?

我正在使用crosstools-ng 1.22編譯工具鏈

編輯:這本質上是代碼在做什么:

//error_function may be deeper in the stack
void error_function()
{
    throw std::runtime_error("This is an error");
}

try
{
    error_function();
}
catch (std::exception&)
{
   //Not being caught
}

通過設置-O0關閉優化似乎可以解決該問題。 該錯誤似乎特定於gcc 4.8.5 ARMv6硬浮點構建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM