Crash (máy tính)

Trong điện toán, crash (hỏng chương trình hay còn gọi là bị văng) xảy ra khi một chương trình máy tính, phần mềm ứng dụng hay hệ điều hành, ngừng hoạt động không đúng cách và thoát. Chương trình có trách nhiệm có thể treo tới khi dịch vụ báo cáo crash thông báo chương trình ngừng hoạt động và các chi tiết liên quan đến nó. Nếu chương trình là một phần quan trọng của hệ điều hành, toàn bộ hệ thống có thể sụp đổ hoặc treo, thường dẫn đến kernel panic hay lỗi hệ thống chết người.
Hầu hết các trường hợp chương trình dừng hoạt động là kết quả việc thực thi mã máy không hợp lệ. Nguyên nhân điển hình như giá trị địa chỉ không hợp lệ trong bộ đếm chương trình, tràn bộ nhớ đệm, ghi đè lên một phần của mã chương trình bị ảnh hưởng do một lỗi trước đó, qua một opcode không hợp lệ hoặc qua việc kích hoạt các ngoại lệ không được xử lý. Lỗi phần mềm ban đầu bắt đầu chuỗi các sự kiện này thường được coi là nguyên nhân làm cho chương trình ngừng hoạt động, có thể được phát hiện thông qua các quy trình gỡ lỗi.
Trong các máy tính cá nhân trước đó, việc cố gắng ghi dữ liệu vào các địa chỉ phần cứng bên ngoài bộ nhớ chính của hệ thống có thể gây ra hư hỏng phần cứng. Một số sự cố có thể bị khai thác và để chương trình độc hại hoặc hacker thực thi mã lệnh bất kỳ cho phép sao chép virus hoặc việc thu thập dữ liệu thường không thể truy cập được.
Ứng dụng bị crash.
Một ứng dụng thường gặp sự cố khi nó thực hiện một hoạt động không được hệ điều hành cho phép. Hệ điều hành sau đó kích hoạt một ngoại lệ hoặc tín hiệu trong ứng dụng. Các ứng dụng Unix theo truyền thống đã phản ứng với tín hiệu bằng cách đẩy xuống lõi.Hầu hết các ứng dụng GUI của Windows và Unix đều phản hồi bằng cách hiển thị hộp thoại (chẳng hạn như hộp thoại hiển thị bên phải) với tùy chọn đính kèm trình gỡ lỗi nếu được cài đặt. Một số ứng dụng cố gắng khôi phục từ lỗi và tiếp tục chạy thay vì thoát
Các lỗi điển hình dẫn đến crash ứng dụng bao gồm:
Crash to desktop.
"Crash to desktop" được cho là xảy ra khi một chương trình (thường là một trò chơi điện tử) đột ngột thoát ra, đột ngột đưa người dùng quay lại màn hình. Thông thường, thuật ngữ này chỉ được áp dụng cho các sự cố mà không có lỗi nào được hiển thị, do đó tất cả những gì người dùng nhìn thấy do sự cố là màn hình. Nhiều khi không có hành động rõ ràng nào gây ra sự cố cho máy tính để bàn. Trong quá trình hoạt động bình thường, chương trình có thể bị đóng băng trong một khoảng thời gian ngắn hơn và sau đó tự đóng lại. Ngoài ra trong quá trình hoạt động bình thường, chương trình có thể trở thành màn hình đen và phát vài giây âm thanh cuối cùng (tùy thuộc vào kích thước của bộ đệm dữ liệu) được phát nhiều lần trước khi bị treo vào máy tính để bàn. Những lần khác, nó có thể được kích hoạt bởi một hành động nhất định, chẳng hạn như tải một khu vực.
Lỗi máy tính để bàn được coi là vấn đề đặc biệt nghiêm trọng đối với người dùng. Vì chúng thường không hiển thị thông báo lỗi, nên có thể rất khó để tìm ra nguồn gốc của vấn đề, đặc biệt nếu thời gian chúng xảy ra và các hành động diễn ra ngay trước khi sự cố xảy ra không có bất kỳ mô hình hoặc điểm chung nào. Một cách để tìm ra nguồn gốc của vấn đề cho các trò chơi là chạy chúng ở chế độ cửa sổ. Windows Vista có một tính năng có thể giúp tìm ra nguyên nhân của sự cố CTD khi nó xảy ra trên bất kỳ chương trình nào. Windows XP cũng bao gồm một tính năng tương tự.
Một số chương trình máy tính, chẳng hạn như StepMania và BBC's Bamzooki, cũng bị lỗi màn hình nếu ở chế độ toàn màn hình, nhưng hiển thị lỗi trong một cửa sổ riêng khi người dùng đã quay lại màn hình. Sự cố thường do lỗi trang web hoặc lỗi hệ thống.