วิธีตรวจสอบสิ่งที่ทำให้ Chrome แสดงข้อความโต้ตอบ“ แย่จัง”


31

ไม่มีใครรู้ว่ามีวิธีการปฏิบัติในการกำหนดสาเหตุของ "แย่จัง!" ที่ปรากฏเป็นครั้งคราวใน Google Chrome Chrome มีบันทึกข้อผิดพลาดที่ฉันสามารถอ้างอิงได้หรือไม่ ฉันสงสัยว่าปัญหานี้เกิดจากการวนซ้ำแบบวนซ้ำในโค้ดซึ่งจะกลืนหน่วยความจำทั้งหมดหรือไม่ มีวิธีใดที่ฉันสามารถยืนยันสิ่งนี้


สำเนาที่เป็นไปได้ของ"แย่จัง!" ทำไมโครเมี่ยมไม่ทำงาน
wizlog

คำตอบ:


28

ดูคำอธิบายได้ที่นี่: สำหรับการเข้าสู่ระบบธรรมดาใน Chrome คุณสามารถลอง:

  • ใช้คุณสมบัติการบันทึกของ Chrome :

    หากต้องการเปิดใช้งานการบันทึกให้เปิด Chrome ด้วยการตั้งค่าสถานะบรรทัดคำสั่งเหล่านี้:

    --enable-logging --v=1

    การส่งออกจะได้รับการบันทึกไว้ในแฟ้มchrome_debug.logในไดเรกทอรีข้อมูลของผู้ใช้ Chrome

    ตำแหน่งของไฟล์บันทึกสามารถถูกแทนที่ได้โดยCHROME_LOG_FILEตัวแปรสภาพแวดล้อม

    สำหรับรายการเต็มรูปแบบของธงตรวจสอบ: บรรทัดคำสั่ง Google Chrome สวิทช์

  • หรือใช้คอนโซล javascript :

    กดCtrl+ Shift+ J(Windows / Linux) หรือCmd+ Option+ J(Mac)


1
ฉันคิดว่าตัวเลือกแรกจะช่วยแยกปัญหานี้ คอนโซล dev หยุดทำงานก่อนที่จะสามารถแสดงผลการใช้งานอะไรก็ได้
QFDev

2
ฉันเปิดใช้งานบันทึกและเมื่อเกิดข้อผิดพลาดของ Chrome มันไม่ได้บันทึกข้อผิดพลาดใด ๆ ในขณะที่เกิดข้อผิดพลาด มีการอ้างอิงใด ๆ ที่สามารถให้ข้อมูลเชิงลึกเกี่ยวกับรายการบันทึกหรือไม่
Khadim Ali

นี่คือหน้าเกี่ยวกับโครเมียม logging.hสิ่งที่คุณต้องการ?
vinnief

คุณช่วยกรุณารวมเนื้อหาที่ย่อของลิงก์ในคำตอบนี้ได้ไหม มันจะไปค้างถ้าลิงก์ตาย
mafu

3
โดยปกติแล้วคอนโซล Javascript จะไม่มีประโยชน์ในกรณีนี้เนื่องจากเครื่องมือ dev ถูกตัดการเชื่อมต่อเมื่อเพจล่ม
PawnStar

28

บัญชี Twitter Developers Chrome ทางการที่เชื่อมโยงกับเว็บไซต์ซึ่งช่วยให้คุณสามารถดีบักหน้า "แย่จัง": http://www.chromium.org/for-testers/enable-logging

คำแนะนำคือการเปิดตัว Chrome ด้วยการตั้งค่าสถานะเหล่านี้:

--enable-logging --v=1

หากคุณทำเช่นนั้นคุณสามารถคว้าบันทึกข้อผิดพลาดจากไฟล์chrome_debug.logในไดเรกทอรีข้อมูลผู้ใช้ของ Chrome (ในไดเรกทอรีหลักของDefault/) หรือในโฟลเดอร์สร้างฐานสอง ( out\Debug) หากคุณใช้ debug บิลด์


5
upvote เนื่องจากโพสต์นี้พูดถึง--enable-logging --v=1 นานก่อนที่การแก้ไขคำตอบที่ยอมรับจะเพิ่มเข้าไป
CAD bloke

2

แย่จัง! หน้ามักจะเกี่ยวข้องกับกระบวนการความผิดส่วนความผิดพลาดที่อาจจะเกี่ยวข้องกับซอฟต์แวร์จุดบกพร่อง ในการระบุสาเหตุคุณสามารถเปิดใช้งานการบันทึก (ตามที่แนะนำในคำตอบอื่น ๆ ) หรือวิเคราะห์ backtrace ของไฟล์ core dump (บนmacOS , Linux , เช่นUbuntu )

หากคุณไม่ทราบสาเหตุ (เช่นการติดตามสแต็กประกอบด้วยที่อยู่หน่วยความจำเท่านั้น) คุณสามารถสร้างตั๋วการสนับสนุนใหม่ได้ที่ระบบติดตามบั๊กของ Chrome (หรือตรวจสอบอีกครั้งว่ามีอยู่แล้ว) ในขณะที่รายงานคุณควรอัปโหลดและใส่รหัสข้อผิดพลาดโดยไปที่chrome://crashes/หน้าเพื่อให้ที่อยู่หน่วยความจำสามารถแปลเป็นสัญลักษณ์การแก้ปัญหาโดยผู้ดูแล Chrome

อีกทางหนึ่งคุณสามารถถอดรหัสความผิดพลาดของตัวคุณเอง

ดูเพิ่มเติม: ที่ตั้งของ Google Chrome Crash Dump อยู่ที่ไหน


หากต้องการลดความซับซ้อนข้างต้นต่อไปนี้เป็นสาเหตุหลักที่ทำให้หน้าเว็บพัง:

  • คุณพบข้อผิดพลาด (ทั้งบนเว็บไซต์หรือด้วยเว็บเบราว์เซอร์ด้วยตนเอง)

    • บั๊กของเว็บไซต์

      • ตัวอย่าง: JavaScript VM ถึงหน่วยความจำที่จัดสรรสูงสุด (หน่วยความจำไม่พอ)

        ในการตรวจสอบว่าเรียกใช้DevToolsและตรวจสอบแท็บหน่วยความจำ หากเป็นกรณีนี้รหัสควรหยุดโดยอัตโนมัติก่อนเกิดข้อผิดพลาดที่อาจเกิดขึ้นกับหน่วยความจำไม่พอ (เช่นปัญหา 810015 ) ถ้าเป็นเช่นนั้นรายงานปัญหาไปยังเจ้าของเว็บไซต์หรือโปรไฟล์รหัส JS เพื่อค้นหาข้อผิดพลาด

    • ข้อผิดพลาดของเบราว์เซอร์

      • พิจารณาปิดการใช้งานส่วนขยายหรือเรียกใช้ในโหมดไม่ระบุตัวตน
      • พิจารณาลบแคชไฟล์
      • รายงานข้อบกพร่อง
      • ติดตั้งเบราว์เซอร์ใหม่
      • ใช้ Chrome เวอร์ชันอื่นเช่นChromium , DevหรือCanary channel
      • ใช้เบราว์เซอร์อื่นเช่น Epic, Firefox, Opera, Brave, Waterfox, Torch หรืออื่น ๆ
      • หากปัญหาสามารถทำซ้ำได้คุณสามารถลองรวบรวมแหล่งที่มาของ Chromeอีกครั้งด้วยสัญลักษณ์การแก้ปัญหาและวิเคราะห์การติดตามสแต็กหรือรายงาน
  • คุณมีไฟล์เปิดสูงสุดในระบบของคุณ (ดู: # 787381 )

    บน Linux / Unix / macOS เพื่อตรวจสอบว่ารัน:

    sysctl -a | grep files
    

    และตรวจสอบว่าkern.num_filesถึงขีด จำกัด kern.maxfilesของ

    หากเป็นเช่นนั้นให้เพิ่มขีด จำกัด โดยเรียกใช้คำสั่งต่อไปนี้:

    sysctl -w kern.maxfiles=20480
    which launchctl && launchctl limit maxfiles 65536 unlimited
    which ulimit && ulimit -c unlimited
    
  • คุณสามารถมีมัลแวร์ / ไวรัสบางอย่างซึ่งเปลี่ยนแปลงไฟล์ Chrome ของคุณซึ่งทำให้เกิดความผิดพลาด

  • คุณอาจมีบางประเด็นที่หน่วยความจำที่เกี่ยวข้องกับฮาร์ดแวร์ ดังนั้นให้ทำการทดสอบ (เช่นmemtest)

MacOS

หากต้องการแสดงบันทึกจาก Chrome ให้เรียกใช้:

log stream --level debug --predicate 'processImagePath contains "Google"'

หรือโดยการเรียกใช้แอปConsoleซึ่งคุณสามารถตรวจสอบการทิ้งที่ผิดพลาด (หรือเช็คอิน~/Library/Logs/DiagnosticReports) ดู: แก้ไขข้อผิดพลาด“ แย่จัง!” ใน Chrome


แก้จุดบกพร่อง

หากไม่มีวิธีการข้างต้นคุณสามารถพิจารณารวบรวม Chrome จากแหล่งที่มา (ใช้เวลานาน) จากนั้นเรียกใช้โดยตรงจากเทอร์มินัล หลังจากนั้นแต่ละข้อผิดพลาด“ แย่จัง!” ควรตามด้วยการติดตามสแต็กเต็มรูปแบบรวมถึงฟังก์ชั่นและบรรทัดในไฟล์ซอร์สโค้ดที่มันเกิดขึ้น

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