Longobard
написал 30 декабря 2003 года в 13:27 (1097 просмотров)
Ведет себя
как мужчина; открыл 291 тему в форуме, оставил 2499 комментариев на сайте.
Короче обрисовываю проблему подробно:
class Bolvan { private: char* device; /*И т.д.*/ protected: int sg_fd; public: struct FDError { char* message; FDError (char* p) { message = p; } }; Bolvan (const char* io_device); /*и т.д.*/ };
У этого класса Bolvan усть конструктор:
Bolvan::Bolvan (const char* io_device) { sg_fd = open (io_device, O_RDONLY); if (sg_fd < 0) { char *msg; sprintf (msg, "Unable to open device %s\n", io_device); #ifdef DEBUG sprintf (msg, "open (io_device, O_RDONLY) failed. \n Maybe device name is not valid.\n Check open() call in bolvan.cpp\n"); #endif throw Bolvan::FDError (msg); } /*И т.д.*/ };
Bolvan *CB; try { CB = new Bolvan ("/dev/hdc"); } catch (Bolvan::FDError) { delete CB; };
Проблема: После обработки исключения возникает Segmentation fault. причем даже если я сделаю просто
catch (...) { }
То все равно возникает SF. В чем фигня? Причем все, что внутри catch выполняется (проверял дебаггером), а затем возникает SF. Самая проблема, что на одном форуме один челове выложил пример с исключением, котолрый у него РАБОТАЛ. Я этот пример компилю, у меня не работает. Может g++ обновить? У меня g++ 3.2
Помогите пожалуйста.
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Не понимаю: на фига лишние темы плодить? С одним и тем же вопросом…