เวลาโปรแกรมของ Windows ค้างหรือล่ม ระบบจะสร้าง "crash dump file" ไว้เซฟข้อมูลที่มีก่อนเกิดข้อผิดพลาด ถ้าคุณอ่าน memory dump file ขนาดเล็กจิ๋วนี้ได้ ก็ช่วย troubleshoot หรือหาสาเหตุ error ต่างๆ ได้ง่ายขึ้น ให้ใช้ utility ฟรีชื่อ "BlueScreenView" แล้วจะรู้ทันทีว่าเกิดความผิดปกติตรงไหน หรือใช้ Windows Debugger tool แทนถ้าอยากรู้ข้อมูลแบบลงลึก
ขั้นตอน
-
ให้ใช้ BlueScreenView ถ้าแค่อยากรู้ว่าอะไรทำโปรแกรมล่ม. ผู้ใช้ทั่วไปจะใช้ dump file แค่หาสาเหตุที่ทำระบบล่ม หรือมีจอฟ้ามรณะ (Blue Screen of Death) โผล่มา BlueScreenView เป็น utility ฟรีของ NirSoft ใช้วิเคราะห์ dump file แล้วรายงานได้ว่าไดรฟ์เวอร์ไหนหรือสาเหตุอะไรที่ทำระบบคุณล่ม
- dump file ที่ถูกสร้างตอนระบบกำลังล่ม จะเรียกว่า "minidump"
-
ดาวน์โหลด BlueScreenView. คุณดาวน์โหลด BlueScreenView ได้ที่เว็บ NirSoft เลย แค่พิมพ์ nirsoft.net/utils/blue_screen_view.html ในเบราว์เซอร์
- โปรแกรมแบบ standalone ก็มีให้ดาวน์โหลดเป็นไฟล์ ZIP ใช้เปิดได้เลย ไม่ต้องติดตั้ง พอดาวน์โหลดไฟล์ ZIP มาแล้วก็คลิกขวาแล้วเลือก "Extract" เพื่อสร้างโฟลเดอร์ใหม่ด้วยโปรแกรม BlueScreenView ได้เลย
-
เปิด BlueScreenView. พอแตกไฟล์ ZIP ของ BlueScreenView แล้ว ให้เปิดโปรแกรมข้างใน แล้ว Windows จะมีขั้นตอนต่อไปให้ทำ
-
หา dump file ที่จะวิเคราะห์. เวลาคอมค้าง ระบบล่ม จะมีการสร้างไฟล์ "minidump" ขึ้นมาในโฟลเดอร์ Windows เป็นไฟล์ที่ลงท้ายด้วย .dmp เปิดในโปรแกรม BlueScreenView ได้ จะมีรายงานผลว่าเกิดอะไรขึ้นบ้าง minidump file ปกติจะอยู่ที่ C:\Windows\Minidump แต่ถ้าหาไม่เจอ อาจต้องตั้งค่าให้แสดงไฟล์ที่ถูกซ่อน (hidden file) ก่อน [1] X แหล่งข้อมูลอ้างอิง
- ถ้าใช้ Windows 10 กับ 8 ให้คลิก tab "View" ใน Windows Explorer แล้วติ๊กช่อง "Hidden items"
- ถ้าใช้ Windows 7 หรือเก่ากว่า ให้เปิด Folder Options ใน Control Panel จากนั้นคลิก tab "View" แล้วเลือก "Show hidden files, folders, and drives"
-
ลากไฟล์ .dmp ไปใส่ในหน้าต่าง BlueScreenView . วิธีเปิดไฟล์ .dmp แบบง่ายและเร็วที่สุด คือลากไฟล์ไปใส่ในหน้าต่างเลย ไม่ได้เป็นการย้ายไฟล์จากตำแหน่งที่เซฟไว้แต่อย่างใด เสร็จแล้วจะเห็นข้อมูลในครึ่งล่างของหน้าต่าง BlueScreenView
-
หาคอลัมน์ "Caused By Driver" ที่ด้านบน. อาจจะต้องเลื่อนไปทางขวาหน่อยถึงจะเจอ คอลัมน์นี้จะแสดงไดรฟ์เวอร์ที่ทำระบบล่ม
- นอกจากนี้ไดรฟ์เวอร์เจ้าปัญหาจะเน้นไว้ด้วยสีแดงที่ด้านล่างของหน้าต่าง ให้ดับเบิลคลิก entry ที่เด่นเป็นสง่านี้ถ้าอยากดูรายละเอียดเพิ่มเติม เช่น ชื่อผลิตภัณฑ์, คำอธิบาย และ path [2] X แหล่งข้อมูลอ้างอิง
-
แก้ปัญหาด้วยข้อมูลนี้. พอรู้แล้วว่าไดรฟ์เวอร์ไหนทำระบบล่ม ก็เริ่ม troubleshoot หรือแก้ปัญหาได้เลย เริ่มจากค้นในเน็ตว่า " ชื่อไดรฟ์เวอร์ crash" เผื่อจะเจอคนที่ประสบปัญหาเดียวกันและหาทางแก้ได้แล้วโฆษณา
-
ถ้าอยากวิเคราะห์ขั้นสูง ให้ใช้วิธีนี้. ถ้าเป็นผู้ใช้ทั่วไปก็ไม่ต้องถึงขั้นใช้โปรแกรม Windows Debugger เปิดไฟล์ MEMORY.DMP หาโค้ดที่เด้งออกมาจากความจำตอนระบบล่ม แต่ถ้าอยากรู้เพิ่มเติมว่า Windows ใช้ไดรฟ์เวอร์ต่างๆ กับความจำยังไง หรืออยากวิเคราะห์ dump file เพื่อการพัฒนาระบบ/โปรแกรม Windows Debugger นี่แหละที่คุณต้องการ
-
ดาวน์โหลด Windows Software Development Kit (WDK). เป็นโปรแกรมที่มี WinDBG หรือโปรแกรมที่ต้องใช้เปิด dump file คุณดาวน์โหลดไฟล์ติดตั้ง WDK ได้จากเว็บของ Microsoft
-
เปิดไฟล์ sdksetup.exe . เปิดไฟล์ติดตั้งแล้วทำตามขั้นตอนที่ปรากฏ โดยไม่ต้องเปลี่ยนค่า default ใน 2 - 3 หน้าจอแรก
-
เลือกเฉพาะ "Debugging Tools for Windows" . ให้เอาติ๊กออก ไม่ต้องเลือกฟีเจอร์อื่นๆ เพราะเราแค่จะเปิด dump file แบบนี้จะช่วยประหยัดเวลาติดตั้ง แถมไม่เปลืองพื้นที่เก็บข้อมูลในคอม
-
รอจนดาวน์โหลดและติดตั้งไฟล์เสร็จ. ไม่กี่นาทีก็เสร็จแล้ว
-
เปิด Command Prompt ในฐานะแอดมิน. ต้องเปิด Command Prompt ขั้นสูง WinDBG ถึงจะวิเคราะห์ไฟล์ .dmp ได้ ให้เปิด Command Prompt จากในโฟลเดอร์ "system32"
- Windows 10 กับ 8 - คลิกขวาที่ปุ่ม Windows แล้วเลือก "Command Prompt (Admin)"
- Windows 7 - เปิดเมนู Start แล้วพิมพ์ cmd จากนั้นกด Ctrl + ⇧ Shift + ↵ Enter
-
เปิดโฟลเดอร์ debugger. พิมพ์คำสั่งต่อไปนี้เพื่อไปยังโฟลเดอร์ที่ถูกต้อง ถ้าใช้ Windows 10 ก็ copy ไป paste ได้เลย แต่ถ้าเป็นเวอร์ชั่นเก่าๆ ต้องพิมพ์เอง
- cd\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\
-
พิมพ์คำสั่งเพื่อ associate หรือพ่วง dump file. ให้พิมพ์คำสั่งต่อไปนี้เพื่อให้ WinDBG ใช้ไฟล์ .dmp ได้ ถ้าใช้ Windows 10 ก็ copy ไป paste ได้เลย
- windbg.exe -IA
- ถ้าพิมพ์คำสั่งถูกแล้ว หน้าต่าง WinDBG โล่งๆ จะโผล่ขึ้นมา ก็ปิดไปได้เลย
-
เปิด WinDBG. ต้องตั้งค่าให้ WinDBG โหลดไฟล์ที่เกี่ยวข้องจาก Microsoft ก่อน ถึงจะเปิดไฟล์ .dmp ได้ ขั้นตอนนี้ทำใน WinDBG ได้เลย
- วิธีเปิดโปรแกรมได้เร็วที่สุด คือกด ⊞ Win แล้วพิมพ์ "windbg"
-
คลิก "File" แล้วเลือก "Symbol File Path" . เพื่อเปิดหน้าต่างใหม่
-
copy แล้ว paste address ต่อไปนี้. path นี้ใช้บอก WinDBG ให้ดาวน์โหลดสัญลักษณ์ (symbol) ที่จำเป็นจาก Microsoft โดยตรง แล้วเซฟไว้ที่ C:\SymCache [3] X แหล่งข้อมูลอ้างอิง
- SRV*C:\SymCache*http://msdl.microsoft.com/download/symbols
- โฟลเดอร์ C:\SymCache จะใหญ่ขึ้นเรื่อยๆ หลังคุณเปิด debug file และดาวน์โหลด symbol เพิ่มจาก Microsoft
-
หา dump file ที่จะวิเคราะห์. dump (.dmp) file จะถูกสร้างทุกครั้งที่ระบบล่ม ตามค่า default dump file จะอยู่ในโฟลเดอร์ C:\Windows\Minidump หลังระบบกลับมา บางทีก็อยู่ที่ C:\Windows\MEMORY.DMP ถ้าหาไฟล์ไม่เจอจริงๆ ก็ต้องตั้งค่าแสดงไฟล์ที่ถูกซ่อน (hidden file) ก่อน
- ถ้าใช้ Windows 10 กับ 8 ให้คลิก tab "View" ใน Windows Explorer แล้วติ๊กช่อง "Hidden items"
- ถ้าใช้ Windows 7 หรือเก่ากว่า ให้เปิด Folder Options ใน Control Panel คลิก tab "View" แล้วเลือก "Show hidden files, folders, and drives"
-
ดับเบิลคลิก dump file. ถ้าตั้งค่า WinDBG ถูกต้องตามที่แนะนำไปแล้ว WinDBG ก็จะเปิดขึ้นมาแล้วเริ่มประมวลผลไฟล์
-
รอจน dump file โหลดเสร็จ. ครั้งแรกที่เปิด dump file ต้องรอจนดาวน์โหลด symbol จาก Microsoft เสร็จ ห้ามไปขัดจังหวะตอนโปรแกรม WinDBG กำลังโหลดไฟล์เด็ดขาด
- ครั้งต่อไป dump file จะโหลดเร็วขึ้นอีกเยอะ เพราะมี symbol ที่ต้องใช้ในโฟลเดอร์ C:\SymCache แล้ว
- จะรู้ได้ว่า dump file โหลดเสร็จแล้ว คือเห็น Followup: MachineOwner โผล่มาท้ายไฟล์
-
หาบรรทัดที่เขียนว่า "Probably caused by". จะรู้ได้เร็วสุดว่าอะไรทำระบบล่ม WinDBG จะวิเคราะห์ dump file แล้วรายงานว่าไดรฟ์เวอร์หรือ process ไหนเป็นตัวปัญหา คุณก็เอาข้อมูลนี้ไปแก้ปัญหาแบบลงลึกหรือค้นคว้าเพิ่มเติมได้เลย
-
หาโค้ด BugCheck. dump file จะมีโค้ดของแต่ละ bug ที่เจอตอนระบบล่มด้วย ให้มองหาที่ด้านบนของบรรทัดที่เขียนว่า "Probably caused by" ปกติจะเป็นโค้ด 2 ตัวอักษร เช่น "9F"
- เข้าเว็บ Microsoft Bug Check Code Reference แล้วหาโค้ดที่ตรงกับ BugCode ที่เจอ โดยสังเกตตัวอักษร 2 ตัวสุดท้ายของแต่ละ entry [4] X แหล่งข้อมูลอ้างอิง
โฆษณา
ข้อมูลอ้างอิง
- ↑ http://www.howtogeek.com/196672/windows-memory-dumps-what-exactly-are-they-for/
- ↑ https://www.raymond.cc/blog/how-to-analyze-memory-dump-dmp-file/
- ↑ http://www.tenforums.com/tutorials/2082-windbg-install-configure.html
- ↑ http://www.tenforums.com/tutorials/5558-windbg-basics-debugging-crash-dumps-windows-10-a.html
โฆษณา