![](/img/trans.png)
[英]C++11 std::this_thread::sleep_until() hangs when compiled with GCC 4.8.5
[英]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.