Можно ли обработать SEGFAULT, возникший в собственном коде?

У меня есть приложение Java 1.6, которое обращается к стороннему собственному модулю через класс JNI, предоставленный в качестве интерфейса. Недавно мы заметили, что в нативном модуле возникает SEGFAULT, что приводит к сбою нашего приложения. Можно ли поймать и обработать это событие, по крайней мере, правильно зарегистрировать его перед смертью?


Я попробовал оба метода Java в статье из ответа kjp . Ни один из них не работал. Попытка установить обработчик сигнала на «SEGV» приводит к исключению

Signal already used by VM: SEGV

. Установленный мной обработчик выключения просто не сработал, предположительно из-за того, что в статье IBM говорится :

Shutdown hooks will not be run if

Runtime.halt() method is called to terminate the JVM. Runtime.halt() is provided to allow a quick shutdown of the JVM.
The -Xrs JVM option is specified.
The JVM exits abnormally, such as an exception condition or forced abort generated by the JVM software.

-. 121 ---1388952-

Ссылка на миниатюру YouTube работает не во всех случаяхПриложение, над которым я работаю, должно получать миниатюры HQ YouTube с URL-адресом. Используя этот ответ, я попытался использовать maxresdefault.jpg, чтобы получить максимальное разрешение миниатюры, но на некоторых видео (...

Приложение, над которым я работаю, должно получать миниатюры HQ YouTube с URL-адресом. Используя этот ответ , я попытался использовать maxresdefault.jpg, чтобы получить максимальное разрешение эскиза, но на некоторых видео (, по-видимому, случайных ), запрос 404.

Вот несколько примеров:

При использовании тех же URL-адресов другие запросы, использующие те же ключи видео, работают :

Почему maxresdefault.jpgне возвращает изображение? Оба эти видео являются общедоступными и могут быть встроены.

Я бы использовал 0.jpg, но у него есть черные полосы вверху и внизу изображения.

13
задан Community 23 May 2017 в 12:32
поделиться