بيئة وقت تشغيل Java تحصل على "خطأ فادح SIGSEGV" للبرنامج باستخدام JOGL

StackOverflow https://stackoverflow.com/questions/4135243

سؤال

أحاول تشغيل برنامج 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 ، فمن المؤكد تقريبًا أن المشكلة تكمن هناك. الرسومات ثلاثية الأبعاد ليست قوية للغاية على معظم أنظمة Linux ، ويؤكد Jogl أنظمة الرسومات ثلاثية الأبعاد كثيرًا لأنها تقوم بأشياء غير عادية معها ، ومعظمها تتعلق بالترابطات المتعددة.

تكمن المشكلة في معظم الأوقات في برامج تشغيل العرض غير المميزة أو غير المطابقة. تأكد من أن نظامك يحتوي على أحدث برامج التشغيل ، واستخدم الملكية الخاصة ، وليس تلك التي تأتي مع التثبيت وليس أي منها مفتوح المصدر - آسف ولكن هذه حالة واحدة حيث تعرف على الأجهزة للخلف (مثل مزودي بطاقات الرسومات) حقًا) يحسن الجودة والأداء. هذا عادة ما يحل المشكلة.

إذا لم يساعدك ذلك في القيام بشيء جذري. غالبًا ما يؤدي تعطيل تسريع رسومات الأجهزة إلى إصلاحه ، ولكن مع فقدان الأداء بالطبع. يجب أن يمنحك ملف السجل تتبع المكدس الكامل ، والذي قد يكون مفيدًا إذا كنت مرتاحًا لترميز برنامج تشغيل الجهاز ولديك مصدر برامج التشغيل. بدلاً من ذلك ، حاول استخدام بطاقة رسومات مختلفة - تلك الجديدة رخيصة إذا لم تقم بترقية لك مؤخرًا.

قضيت أشهر من حياتي في محاولة لتعقب الأخطاء مثل هذا على تطبيق JOGL الذي يعمل على Linux في الحالة العامة ، وما زلت أجد عمليات تثبيت حيث سترسم النافذة فارغة. حظا طيبا وفقك الله.

نصائح أخرى

هذا يبدو وكأنه خطأ في بعض رمز C في مكان ما. بالنظر إلى أن هذا حدث على اثنين من JVMs مختلفة ، فإنني أميل إلى الشك في امتدادات أصلية ، وربما Jogl.

هل قمت بفحص الملف الذي يشير إليه التقرير أيضًا: hs_err_pid2750.log؟ إن النظر إلى ذلك ثم البحث عن بعض هذه المحتويات يمكن أن يوجهك إلى الآخرين بنفس المشكلة وأحيانًا الإصلاح.

كما قالت الملصقات الأخرى ، يمكن في كثير من الأحيان إصلاح أخطاء النقاط الساخنة في برامج JOGL عن طريق تحديث برامج تشغيل بطاقة الرسومات الخاصة بك إلى أحدث إصدار.

ومع ذلك ، إذا كنت تستخدم الإصدار التجريبي الجديد Jogl 2.0 ، فقد تكون المشكلة هي أنك لا تتصل بـ glprofile.initsingleton () ، أو أنك لا تسميها مبكرًا بما فيه الكفاية (يجب أن تكون قبل أي مكالمات 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 مثلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top