Eclipse ควรจะแยกเซกฟอลอย่างต่อเนื่องหรือไม่


1

สรุป: Java VM ที่รัน Eclipse บนระบบของฉันดูเหมือนจะทำงานได้ แต่ภายในจะได้รับ segfaults อย่างต่อเนื่อง

ขั้นตอนในการทำซ้ำ:

  1. ดาวน์โหลดeclipse-cpp-kepler-SR2-linux-gtk-x86_64.tar.gzจากhttp://www.eclipse.org/cdt/downloads.php
  2. /path/to/eclipseสารสกัดจากว่ามันเป็น
  3. gdb /path/to/eclipse/eclipseวิ่ง
  4. ทำset follow-fork childเช่นนั้น GDB จะติดตามกระบวนการ Java จริงและไม่ใช่แค่ตัวเรียกใช้งาน Eclipse
  5. พิมพ์runเพื่อเริ่ม Eclipse คุณอาจต้องเลือกไดเรกทอรีพื้นที่ทำงาน
  6. คุณควรได้รับการแบ่งกลุ่มผิดพลาด (SIGSEGV) ในไม่ช้า พิมพ์contGDB แล้วคุณจะได้รับอีก พิมพ์contอีกครั้งและคุณจะได้รับอีก และคลื่นไส้โฆษณา

อีกครั้ง Eclipse ดูเหมือนจะทำงานได้อย่างน่าจะเป็นเพราะมันจับสัญญาณและกู้คืนอย่างใด

ระบบปฏิบัติการของฉันคือ Red Hat Enterprise Linux 6.5 แบบ 64 บิตพร้อมการอัปเดตทั้งหมดเมื่อวานนี้ (2014-May-22) Java RPM คือjava-1.7.0-openjdk-1.7.0.55-2.4.7.1.el6_5.x86_64รีลีสปัจจุบัน (อัพเดต 7 เวอร์ชัน 55) จากhttp://java.com/ให้ผลลัพธ์เหมือนกัน

ฉันอยากรู้ว่าพฤติกรรมนี้เกิดขึ้นกับคนอื่นหรือไม่กับ Linux อื่น ๆ ที่สำคัญกว่านั้นฉันอยากรู้ว่าใครรู้หรือไม่ว่านี่เป็น "ปกติ"

(ในกรณีที่คุณสงสัย ... ถึงแม้ว่า Eclipse ดูเหมือนจะทำงานได้ แต่ฉันกังวลว่าปัญหาจริงบางอย่างกำลังถูกซ่อนอยู่ฉันสังเกตเห็นสิ่งนี้เพราะฉันได้รับ segfaults เป็นครั้งคราวไม่ใช่ปลั๊กอินที่เลียนแบบได้ทั้งหมดในปลั๊กอินที่ใช้ WebKit ฉันคิดว่าฉันจะลองสังเกต segfault ภายใต้ GDB แต่มันกลับกลายเป็นว่าเล่ห์เหลี่ยมเพราะ JVM แยกกันอยู่หลายครั้งตั้งแต่ต้นแม้กระทั่งการติดตั้งใหม่โดยไม่ต้องใช้ปลั๊กอินที่ละเมิด)


ไม่มี มันไม่ปกติ คุณจะต้องให้ข้อมูลเพิ่มเติม เช่นปลั๊กอินอะไร?
Ramhound

@Ramhound: มันเป็นปลั๊กอินเชิงพาณิชย์ (IBM Rational Team Concert) แต่นั่นไม่เกี่ยวข้องกับคำถามของฉัน ... อย่างที่ฉันบอกว่าพฤติกรรม "seggault ต่อเนื่อง" นี้เกิดขึ้นใน Eclipse ที่ติดตั้งใหม่โดยไม่มีปลั๊กอินใด ๆ (เช่นกันยกเว้น สำหรับ CDT ในตัว) "ขั้นตอนในการทำซ้ำ" ของฉันเสร็จสมบูรณ์แล้ว แจ้งให้เราทราบหากพวกเขาไม่ใช่
Nemo

ฉันจะตัดสินใจว่ามีอะไรเกี่ยวข้องหรือไม่ฉันถามคำถามด้วยเหตุผล
Ramhound

@Ramhound: และฉันตอบคำถามของคุณแม้ว่าฉันจะไม่เห็นว่าปลั๊กอินที่ไม่เคยติดตั้งสามารถทำให้เกิดปัญหาได้
Nemo

1
เห็นสิ่งนี้ปรากฏว่าคาดว่า SIGSEGV
greg-449

คำตอบ:


4

JVM ใช้สัญญาณจำนวนหนึ่งในระหว่างการทำงานปกติดังนั้นคาดว่า SIGSEGVs SIGSEGV ใช้เมื่อจัดการกับ NullPointerException

ดูบทความนี้สำหรับรายละเอียดเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.