exception gcc
От: Аноним  
Дата: 28.11.05 10:40
Оценка:
Есть код такого плана.


class Exception : public std::exception
{
};

class CSomeOne 
{
public:
    void someFun (void)
    {
        // ...............
        throw Exception;
        //................
    };
};

int main (void)
{
    try
    {
        CSomeOne().someFun();
    }
    catch (Exception)
    {
        std::cout << "Exception" << std::endl;
    }
    catch (std::exception)
    {
        std::cout << "std::exception" << std::endl;
    }
    catch (...)
    {
        std::cout << "..." << std::endl;
    }
    
    return 0;
}


Проблема возникает такая. В таком приметивном виде всё работает: поподаем в превый catch, всё ок. Когда вставляем CSomeOne в проект (большое мнигонитевое приложение, несколько внешних либ, плагины) вылезает косяк. Exception и std::exception не отлавливаются. попадает сразу в catch (...).
Сложность в том что я никак не могу локализовать проблему. Я провёл ряд тестов: выкидывал куски сколько мог, создавал тестовые упрощённые многонитевые приложения и тд. В проекте ранее таких проблемм не было, техника отрабаотана и вылезана: вылезло при добавлении нового плагина. Причём что конкретно приводит к тому эыекту вообще не понятно.

$ g++ -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib --enable-__cxa_atexit
Thread model: posix
gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)


может сталкивался кто с такой бедой?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.