На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Некоторые методы вместо сообщения об ошибке выдают сигнал: SIGSEGV Назначение: Segmentation fault

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Некоторые методы вместо сообщения об ошибке выдают сигнал: SIGSEGV Назначение: Segmentation fault
 

Уже не в первый раз сталкиваюсь с проблемой, что некоторые методы mapapi выдают сигнал:  SIGSEGV Назначение:  Segmentation fault, вместо 0, хотя в их описании написано, что при ошибке они 0 должны возвращать 0.

В данном случае говорю о методе mapCreateAndAppendTempSite

// Создать временную пользовательскую карту по открытой карте
 // hmap    -  идентификатор открытых данных
 // rscname - полное имя файла ресурсов, если равно 0 - выбирается
 // из открытой карты
 // Файлы карты размещаются в рабочей директории системы
 // и имеют уникальные имена, генерируемые автоматически
 // При закрытии пользовательской карты все файлы данных автоматически удаляются
 // Возвращает идентификатор открытой пользовательской карты
 // При ошибке возвращает ноль

_MAPIMP HSITE _MAPAPI mapCreateAndAppendTempSite(HMAP hmap, const char *rscname);


Проверила след. образом

   HMAP  hmap = 44768512;   - СПЕЦИАЛЬНО для проверки присваиваю случайное значение
   hsite = mapCreateAndAppendTempSite(hmap,0); - в этой строке свал проекта происходит
 
Это всё равно что написать
Код
int * ptr = reinterpret_cast<int*>(44768512);
*ptr = 25;
Как отлавливать то что указатель (не nullptr или не нулевой) является некорректным ? Вручную обрабатывать SIGSEGV ??
 
Здравствуйте!

Проверка входных параметров-идентификаторов MAPAPI-функций (в частности, идентификаторов открытой карты HMAP) производится только на ненулевое значение. Во всех остальных случаях корректность передаваемого параметра является ответственностью программиста.
 
Ок, действительно, не подумала об этом) Спасибо)
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности