Окружающая среда Java Runtime Получение «Fatal Error Sigsegv» для программы с помощью Jogl
-
30-09-2019 - |
Вопрос
Я пытаюсь запустить программу Java через Eclipse. Всякий раз, когда я пытаюсь бежать за вещь, это то, что я получаю:
Info: XInitThreads() called for concurrent Thread support
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x000010f1, pid=2750, tid=1923033968
#
# JRE version: 6.0_22-b04
# Java VM: Java HotSpot(TM) Server VM (17.1-b03 mixed mode linux-x86 )
# Problematic frame:
# C 0x000010f1
#
# An error report file with more information is saved as:
# /home/anjruu/ragamuffin/trunk/pipeline/hs_err_pid2750.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
Я не получаю никаких ошибок построения, и попробовал его, используя как java 6 OpenJDK, а также Sun's JDK1.6.0_22, оба ведут себя то же самое. Я использую систему Ubuntu 10.10. Программа использует Jogl (Java OpenGL), это актуально?
Файл журнала составляет около 400 строк, поэтому я полагаю, что, возможно, размещение всей вещи не так полезно, и я не уверен, какие разделы будут, но если кто-то может дать мне знать, что я должен включить, я могу сделать так.
Решение
Если вы используете Jogl в системе Linux, то почти наверняка, что проблема лежит там. 3D графика не очень надежная на большинстве систем Linux, и Jogl подчеркивает 3D-графические системы много, потому что он делает необычные вещи с ними, в основном делать с многопотативной.
Большую часть времени проблема заключается в устаревших или не соответствует драйверам дисплея. Убедитесь, что ваша система имеет последние драйверы, и используйте проприетарные, а не те, которые приходят с установкой, а не какие-либо с открытым исходным кодом - извините, но это один случай, когда знание аппаратного обеспечения назад (например, поставщики видеокарт) действительно Улучшает качество и производительность. Это обычно исправит проблему.
Если это не поможет вам сделать что-то резкое. Часто отключение аппаратного графического ускорения исправит его, но с потерей производительности конечно. Файл журнала должен дать вам полную трассировку стека, который может быть полезен, если вам удобно с кодированием драйвера устройств и имейте источник драйверов. В качестве альтернативы попробуйте использовать другую графическую карту - новые дешевые дешевые, если вы не обновились в последнее время.
Я провел несколько месяцев своей жизни, пытаясь отслеживать таких ошибок в приложении Jogl, работающего на Linux в общем случае, и я все еще нашел установки, где окно рисует пустым. Удачи.
Другие советы
Это выглядит как ошибка в некотором C-коде где-то. Учитывая, что это произошло на двух разных JVMS, что я склонен подозревать на родных расширениях, возможно, Jogl.
Вы также проверили файл отчета о том, что вам тоже: hs_err_pid2750.log? Глядя на это, а затем в поисках некоторых из этих содержимого может часто указать вам другим с той же проблемой, а иногда и исправить.
По словам других постеров, ошибки доступа в программах Jogl часто могут быть зафиксированы путем обновления драйверов видеокарты до последней версии.
Однако, если вы используете новую бета-версию Jogl 2.0, проблема может быть то, что вы либо не вызывая GLPROFILE.INITSINGLEDON (), либо вы не вызываете его рано достаточно (он должен быть до каких-либо вызовов X Windows) Отказ
У меня есть учебник в http://wadeawalker.wordpress.com/2010/10/09/tutorial-a-cross-platform-workbench-program-using-java-opengl-and-eclipse/ Это показывает, как создать простую программу Jogl 2.0. Я проверил эту программу на CentOS 5.4, и она работает правильно. Вернувшись до того, как у меня был GLPROFILE.initsingleton () в нужном месте в этом руководстве, я видел ту же ошибку Sigsegv, как вы.