ปัญหา Windows 10 และ cygwin ที่แขวนอยู่


2

เมื่อฉันรันโปรแกรมอินเทอร์แอคทีฟ (ตัวอย่างเช่น mysql) จาก cygwin บน Windows 10 อินพุตจะหยุดทำงานและไม่ทำอะไรเลย ถ้าฉัน ctrl-c out ฉันสามารถเห็นอินพุตถูกส่งไปยังคอนโซล

ฉันยังเห็นผลลัพธ์แปลก ๆ จากโปรแกรมอินเทอร์แอคทีฟอื่น ๆ (pry, irb) - ทุกอย่างทำงานได้ดีบน Windows 7

มีใครเห็นและแก้ไขได้ไหม


1
ฉันมีปัญหาที่คล้ายกันซึ่งมินตีแขวนเมื่อออก แต่เฉพาะเมื่อเปิดตัวผ่านทางลัด (ซึ่งต่างจากการเปิดตัวจากchere) สาเหตุหลักคือมินต์นั้นจำเป็นต้องเปิดตัวในฐานะผู้ดูแลระบบ อัปเดตทางลัดของฉันเพื่อรวมตัวเลือก "Run as administrator" ไว้ให้ฉัน
Mr. Llama

คำตอบ:


3

ในสภาพแวดล้อม cygwin คำสั่ง linux 'strace' จะพร้อมใช้งาน strace แสดงผลการทำงานร่วมกันของแอปพลิเคชัน OS <--> ทั้งหมด (ในกรณีนี้แอปพลิเคชัน <--> cygwin <--> ระบบปฏิบัติการ) และการเรียกระบบที่เฉพาะเจาะจงหรือการดำเนินการอื่น ๆ

ในการใช้ strace คุณเพียงแค่เติมคำสั่ง strace ก่อนคำสั่งที่เรียกใช้แอปพลิเคชันที่คุณต้องการดีบัก ตัวอย่างเช่นถ้าคุณมีการเปิดตัว MySQL จากสถานี Cygwin ใช้คำสั่งเรียกว่าแทนที่จะเป็นmysqlstrace mysql

หากผลลัพธ์จากการรัน strace บนโปรแกรมแช่แข็งไม่ปรากฏขึ้นโปรดโพสต์ผลลัพธ์ไปที่ pastebin หรือสิ่งที่เทียบเท่า (อย่าพยายามเพิ่มคำตอบของคุณมันจะเป็นข้อความจำนวนมาก)

ขั้นตอนต่อไปคือการเรียกใช้งานด้วยดีบักเกอร์เช่น gdb แต่ในกรณีเช่นนี้มักจะเพียงพอ

ปรับปรุง

เห็นได้ชัดว่ามีข้อผิดพลาดในพอร์ต cygwin ของ strace ในช่วงสองสามเดือนที่ผ่านมา; ต่อการค้นหา google ของ 'cygwin strace seg fault'; ฉันไม่ทราบว่า เนื่องจาก strace เป็นเครื่องมือที่ดีที่สุดสำหรับงานนี้ให้ลองอัปเดตการติดตั้ง cygwin ของคุณเพื่อดูว่าการแก้ไขนั้นได้รับการแนะนำโดยตั้งใจหรือไม่ตั้งใจ เพื่ออัพเดตการติดตั้ง cygwin ของคุณคุณใช้ลำดับคำสั่งต่อไปนี้:

wget -NP /usr/local/bin/ http://cygwin.com/setup-x86_64.exe
chmod u+x /usr/local/bin/setup-x86_64.exe
/usr/local/bin/setup-x86_64.exe -n

แหล่ง

หลังจากอัปเดตลองอีกครั้ง ถ้ามันยังคงแยกกันอยู่สิ่งต่าง ๆ จะมีความยุ่งเหยิงเล็กน้อยเนื่องจาก gdb นั้นใช้งานได้ง่ายกว่ามากและไม่มีอะไรที่เทียบเท่าได้จริงในสภาพแวดล้อม cygwin ที่ฉันรู้อยู่ในขณะนี้

มีโอกาสที่การอัปเดตจะแก้ไขปัญหาการเปิดตัวของคุณอยู่เสมอและ strace กลายเป็นจุดที่สงสัย (ไม่ใช่โอกาสที่ยิ่งใหญ่มาก ... )

อัปเดต 2

หากคำสั่ง cygwin strace segfaults หลังจากอัปเดตฉันคิดว่าทางออกที่ดีที่สุดของคุณคือการใช้ดีบักเกอร์พื้นที่ผู้ใช้ windows ดั้งเดิมเช่น logger.exe ข้อมูลการติดตั้งสามารถพบได้ที่นี่

logger.exe ถูกใช้ในลักษณะที่คล้ายกันเพื่อ strace ปัญหาที่คุณจะได้รับการแปล cygwins ของการเรียกระบบของโปรแกรมที่เปิดเผยไม่ใช่การเรียกระบบจริง กล่าวอีกนัยหนึ่งมันจะดูเฉพาะระบบปฏิบัติการของ cygwin และข้อมูลเฉพาะของโปรแกรมที่กระทำผิดอาจถูกทำให้งงงวย อย่างไรก็ตามการแฮงค์หรือหยุดการทำงานสามารถอ้างได้ว่าเป็นการ จำกัด ทรัพยากรหรือการเรียกระบบที่ไม่ตอบสนองและวิธีการนี้จะเปิดเผย

เนื่องจากฉันเสนอสิ่งนี้เป็นทางเลือกให้กับบางสิ่งบางอย่าง (strace) ที่อาจยังคงใช้ได้หลังจากการอัปเดตฉันจะไม่พูดถึงรายละเอียดที่ดีเกี่ยวกับการใช้งานเฉพาะของมัน โดยพื้นฐานแล้วสิ่งที่คุณจะทำ (ติดตั้งภายหลัง) คือเรียก cygwin จากพรอมต์คำสั่ง windows ซึ่งจัดทำขึ้นโดยโปรแกรม logger.exe เช่นเดียวกับที่ฉันอธิบาย strace เทอร์มินัล cygwin แบบโต้ตอบจะเปิดขึ้นและคุณต้องเปิดโปรแกรมที่คุณกำลังประเมินจากนั้น มีข้อความจำนวนมาก (ควร) เอาท์พุทโดยแอปพลิเคชันตัวบันทึกอธิบายสิ่งที่ cygwin และเป็นกระบวนการลูก "โปรแกรมของคุณ" กำลังทำ เมื่อแฮงค์เกิดขึ้นการเรียกของระบบเฉพาะหรือทรัพยากรที่กำลังรออยู่ควรปรากฏให้เห็นชัดเจน ถ้าไม่ใช่ให้โพสต์ข้อความแบบเต็มของเอาต์พุตตัวบันทึก


เมื่อฉันเรียกใช้strace mysqlฉันเพิ่งเห็น: ข้อผิดพลาดในการแบ่งกลุ่ม
pguardiario

นั่นคือผลลัพธ์ทั้งหมดหรือไม่ ไม่ใช่ตัวละครเดียวนอกเหนือจากนั้น?
Argonauts

ถูกต้อง.
pguardiario

ดูการปรับปรุงของฉัน; googling เล็กน้อยแสดงให้เห็นว่ามันเป็น (หรือหวังว่า) เป็นปัญหาทั่วไป ความสงสัยของฉันมาจากความจริงที่ว่า strace แสดงข้อความที่น่ารังเกียจเมื่อใช้มันดังนั้นการมีสิ่งตรงกันข้ามเกิดขึ้นอย่างไม่น่าเชื่อ
Argonauts

นี่คือสภาพแวดล้อม cygwin ใหม่เอี่ยมที่ฉันตั้งค่าวันนี้ดังนั้นทุกอย่างจึงเป็นข้อมูลล่าสุด ฉันคิดว่าฉันจะรอและดูว่ามีคนอื่นแก้ไขปัญหานี้แล้วฉันสามารถใช้ cmd.exe ในระหว่างนี้ได้หรือไม่
pguardiario

3

หาก strace ทำการแยกสาเหตุที่เป็นไปได้มากที่สุดคือ Antivirus

สิ่งล่าสุดที่ทำให้เกิดปัญหานี้คือ Micro Trend

https://cygwin.com/ml/cygwin/2016-08/msg00092.html

มีรายงานผู้ป่วยหลายรายในเดือนที่แล้ว


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