ile çalışır. Düzenleme: bu sorun benim kodumla ilgili değil, sorun olmaksızın çok sayıda başka sorun üzerinde test edilmiştir. Bu bir gcc çapraz derleme problemidir.C++ gcc-4.8.5 ile derlendiğinde fakat gcc-4.6.4 ile çalışıldığında istisnalar gözardı edilemez fakat gcc-4.6.4
Raspberry Pi 2 üzerinde çalıştırmak için Ubuntu x64 üzerinde g ++ ile büyük bir C++ programı derlemek çapraz. Gcc-4.6.4 kullanırken her şey çalışıyor gibi görünüyor. Gcc-4.8.5 kullanırken istisnalar sızıyor ve programın iptal edilmesine neden oluyor gibi görünüyor. Gcc-4.8.5 kullanarak en az bir istisna örneği yakalamayı denedim ve minimum durum düzgün çalışıyor gibi görünüyor. Benim gerçek programım çok daha karmaşıktır ve istisna yakalamak bir yerlerde kaybolmaktadır.
Özel durum işlenmesini iyileştirecek bazı g ++ ayarları var mı?
Birlikte toolchain derleme am crosstools-ng 1.22
Edit:
//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
}
Bir C kütüphanesinden çağrılan bir C++ çağrısı dışında bir istisna atıyor olabilir misiniz? – rodrigo
Sorunun, kodunuzda bir yerlerde olduğundan eminim. En az bir örnek çıkarın. –
Bu kod, sorunsuz bir şekilde birçok platformda test edilmiştir. Sorun sadece gcc-4.8 armhf üzerinde gerçekleşir. Sorunu minimal bir örnekle yeniden üretemedim ve kod tescilli. – John