Как отладить сбой MagickReadImage, когда не возникает никаких исключений

У меня есть код MagickWand, где MagickReadImage() не удается (возвращается MagickFalse) в одной системе, где она работает в другой.

Теперь нет исключений, MagickGetException() возвращает пустую строку, что означает отсутствие исключения, если я правильно понял документацию.

Файл, который я хочу открыть, находится там, я могу открыть его с помощью других инструментов под тем же пользователем, и magick_wand Я использую не NULL.

Код вокруг вызова по сути такой:

    // read image
MagickBooleanType status = MagickReadImage(magick_wand, fn_selector);

// make sure it worked
if (status == MagickFalse)
{
char *description;
ExceptionType severity;
description=MagickGetException(magick_wand,&severity);
fprintf(stderr,"%s %s %lu :%s: %u\n",GetMagickModule(),description,severity);
description=(char *) MagickRelinquishMemory(description);
fprintf(stderr, "magickwand couldn't read file %s\n", fn_selector);
exit(1);
}

Есть ли способ выяснить, почему не удается вызвать функцию? MagickReadImage() кажется, вызывает внутреннюю функцию, которую сложно отладить, и я не хочу сам собирать библиотеку MagickWand с добавлением отладочной информации, если в этом нет крайней необходимости.

Использование MagickWand версии 6.8.9.9 (Debian Jessie)

0

Решение

Оказывается (после прохождения strace) для чтения PDF в ImageMagick требуется Ghostscript исполняемый (/usr/bin/gs) для установки в системе. Теперь при установке ImageMagick через менеджер пакетов Debian apt ghostscript не является зависимостью, а только рекомендацией библиотеки Magick. К сожалению, Magick не считает необходимым сообщать вам каким-либо образом, что компонент библиотеки отсутствует при сбое вызова чтения.

После установки ghostscript пакет, все работает как положено.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]