fbpx
Wikipedia

Crash (computing)

In computing, a crash, or system crash, occurs when a computer program such as a software application or an operating system stops functioning properly and exits. On some operating systems or individual applications, a crash reporting service will report the crash and any details relating to it (or give the user the option to do so), usually to the developer(s) of the application. If the program is a critical part of the operating system, the entire system may crash or hang, often resulting in a kernel panic or fatal system error.

A kernel panic displayed on an iMac. This is the most common form of an operating system failure in Unix-like systems.

Most crashes are the result of a software bug. Typical causes include accessing invalid memory addresses, incorrect address values in the program counter, buffer overflow, overwriting a portion of the affected program code due to an earlier bug, executing invalid machine instructions (an illegal opcode), or triggering an unhandled exception. The original software bug that started this chain of events is typically considered to be the cause of the crash, which is discovered through the process of debugging. The original bug can be far removed from the code that actually triggered the crash.

In early personal computers, attempting to write data to hardware addresses outside the system's main memory could cause hardware damage. Some crashes are exploitable and let a malicious program or hacker execute arbitrary code allowing the replication of viruses or the acquisition of data which would normally be inaccessible.

Application crashes

 
A display at Frankfurt Airport running a program under Windows XP that has crashed due to a memory read access violation

An application typically crashes when it performs an operation that is not allowed by the operating system. The operating system then triggers an exception or signal in the application. Unix applications traditionally responded to the signal by dumping core. Most Windows and Unix GUI applications respond by displaying a dialogue box (such as the one shown to the right) with the option to attach a debugger if one is installed. Some applications attempt to recover from the error and continue running instead of exiting.

An application can also contain code to crash[a] after detecting a severe error.

Typical errors that result in application crashes include:

  • attempting to read or write memory that is not allocated for reading or writing by that application (e.g., segmentation fault, x86-specific general protection fault)
  • attempting to execute privileged or invalid instructions
  • attempting to perform I/O operations on hardware devices to which it does not have permission to access
  • passing invalid arguments to system calls
  • attempting to access other system resources to which the application does not have permission to access
  • attempting to execute machine instructions with bad arguments (depending on CPU architecture): divide by zero, operations on denormal number or NaN (not a number) values, memory access to unaligned addresses, etc.

Crash to desktop

A "crash to desktop" is said to occur when a program (commonly a video game) unexpectedly quits, abruptly taking the user back to the desktop. Usually, the term is applied only to crashes where no error is displayed, hence all the user sees as a result of the crash is the desktop. Many times there is no apparent action that causes a crash to desktop. During normal function, the program may freeze for a shorter period of time, and then close by itself. Also during normal function, the program may become a black screen and repeatedly play the last few seconds of sound (depending on the size of the audio buffer) that was being played before it crashes to desktop. Other times it may appear to be triggered by a certain action, such as loading an area.

Crash to desktop bugs are considered particularly problematic for users. Since they frequently display no error message, it can be very difficult to track down the source of the problem, especially if the times they occur and the actions taking place right before the crash do not appear to have any pattern or common ground. One way to track down the source of the problem for games is to run them in windowed-mode. Windows Vista has a feature that can help track down the cause of a CTD problem when it occurs on any program.[clarification needed] Windows XP included a similar feature as well.[clarification needed]

Some computer programs, such as StepMania and BBC's Bamzooki, also crash to desktop if in full-screen, but display the error in a separate window when the user has returned to the desktop.

Web server crashes

The software running the web server behind a website may crash, rendering it inaccessible entirely or providing only an error message instead of normal content.

For example: if a site is using an SQL database (such as MySQL) for a script (such as PHP) and that SQL database server crashes, then PHP will display a connection error.

Operating system crashes

 
A Blue Screen of Death as displayed in Windows XP, Vista, and 7
 
A kernel panic as displayed in OS X Mountain Lion

An operating system crash commonly occurs when a hardware exception occurs that cannot be handled. Operating system crashes can also occur when internal sanity-checking logic within the operating system detects that the operating system has lost its internal self-consistency.

Modern multi-tasking operating systems, such as Linux, and macOS, usually remain unharmed when an application program crashes.

Some operating systems, e.g., z/OS, have facilities for Reliability, availability and serviceability (RAS) and the OS can recover from the crash of a critical component, whether due to hardware failure, e.g., uncorrectable ECC error, or to software failure, e.g., a reference to an unassigned page.

Security and privacy implications of crashes

Depending on the application, the crash may contain the user's sensitive and private information.[1] Moreover, many software bugs which cause crashes are also exploitable for arbitrary code execution and other types of privilege escalation.[2][3] For example, a stack buffer overflow can overwrite the return address of a subroutine with an invalid value, which will cause, e.g., a segmentation fault, when the subroutine returns. However, if an exploit overwrites the return address with a valid value, the code in that address will be executed.

Crash reproduction

When crashes are collected in the field using a crash reporter, the next step for developers is to be able to reproduce them locally. For this, several techniques exist: STAR uses symbolic execution,[4] MuCrash mutates the test code of the application that has crashed,[5] and EvoCrash performs evolutionary search.[6]

See also

Notes

  1. ^ In OS/360 and successors the application normally uses an ABEND macro with a user completion code.

References

  1. ^ Satvat, Kiavash; Saxena, Nitesh (2018). "Crashing Privacy: An Autopsy of a Web Browser's Leaked Crash Reports". arXiv:1808.01718. Bibcode:2018arXiv180801718S. {{cite journal}}: Cite journal requires |journal= (help)
  2. ^ "Analyze Crashes to Find Security Vulnerabilities in Your Apps". Msdn.microsoft.com. 26 April 2007. from the original on 11 December 2011. Retrieved 26 June 2014.
  3. ^ "Jesse Ruderman » Memory safety bugs in C++ code". Squarefree.com. 1 November 2006. from the original on 11 December 2013. Retrieved 26 June 2014.
  4. ^ Chen, Ning; Kim, Sunghun (2015). "STAR: Stack Trace Based Automatic Crash Reproduction via Symbolic Execution". IEEE Transactions on Software Engineering. 41 (2): 198–220. doi:10.1109/TSE.2014.2363469. ISSN 0098-5589. S2CID 6299263.
  5. ^ Xuan, Jifeng; Xie, Xiaoyuan; Monperrus, Martin (2015). "Crash reproduction via test case mutation: let existing test cases help". Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering - ESEC/FSE 2015 (PDF). pp. 910–913. doi:10.1145/2786805.2803206. ISBN 9781450336758. S2CID 10358523. (PDF) from the original on 3 May 2019. Retrieved 15 February 2020.
  6. ^ Soltani, Mozhan; Panichella, Annibale; van Deursen, Arie (2017). "A Guided Genetic Algorithm for Automated Crash Reproduction". 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE). pp. 209–220. doi:10.1109/ICSE.2017.27. ISBN 978-1-5386-3868-2. S2CID 199514177. from the original on 25 January 2022. Retrieved 21 December 2020.

External links

  • Picking Up The Pieces After A Computer Crash

crash, computing, system, crash, redirects, here, television, series, system, crash, series, this, article, needs, additional, citations, verification, please, help, improve, this, article, adding, citations, reliable, sources, unsourced, material, challenged,. System crash redirects here For the television series see System Crash TV series This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources Crash computing news newspapers books scholar JSTOR December 2013 Learn how and when to remove this template message In computing a crash or system crash occurs when a computer program such as a software application or an operating system stops functioning properly and exits On some operating systems or individual applications a crash reporting service will report the crash and any details relating to it or give the user the option to do so usually to the developer s of the application If the program is a critical part of the operating system the entire system may crash or hang often resulting in a kernel panic or fatal system error A kernel panic displayed on an iMac This is the most common form of an operating system failure in Unix like systems Most crashes are the result of a software bug Typical causes include accessing invalid memory addresses incorrect address values in the program counter buffer overflow overwriting a portion of the affected program code due to an earlier bug executing invalid machine instructions an illegal opcode or triggering an unhandled exception The original software bug that started this chain of events is typically considered to be the cause of the crash which is discovered through the process of debugging The original bug can be far removed from the code that actually triggered the crash In early personal computers attempting to write data to hardware addresses outside the system s main memory could cause hardware damage Some crashes are exploitable and let a malicious program or hacker execute arbitrary code allowing the replication of viruses or the acquisition of data which would normally be inaccessible Contents 1 Application crashes 1 1 Crash to desktop 2 Web server crashes 3 Operating system crashes 4 Security and privacy implications of crashes 5 Crash reproduction 6 See also 7 Notes 8 References 9 External linksApplication crashes Edit A display at Frankfurt Airport running a program under Windows XP that has crashed due to a memory read access violation An application typically crashes when it performs an operation that is not allowed by the operating system The operating system then triggers an exception or signal in the application Unix applications traditionally responded to the signal by dumping core Most Windows and Unix GUI applications respond by displaying a dialogue box such as the one shown to the right with the option to attach a debugger if one is installed Some applications attempt to recover from the error and continue running instead of exiting An application can also contain code to crash a after detecting a severe error Typical errors that result in application crashes include attempting to read or write memory that is not allocated for reading or writing by that application e g segmentation fault x86 specific general protection fault attempting to execute privileged or invalid instructions attempting to perform I O operations on hardware devices to which it does not have permission to access passing invalid arguments to system calls attempting to access other system resources to which the application does not have permission to access attempting to execute machine instructions with bad arguments depending on CPU architecture divide by zero operations on denormal number or NaN not a number values memory access to unaligned addresses etc Crash to desktop Edit A crash to desktop is said to occur when a program commonly a video game unexpectedly quits abruptly taking the user back to the desktop Usually the term is applied only to crashes where no error is displayed hence all the user sees as a result of the crash is the desktop Many times there is no apparent action that causes a crash to desktop During normal function the program may freeze for a shorter period of time and then close by itself Also during normal function the program may become a black screen and repeatedly play the last few seconds of sound depending on the size of the audio buffer that was being played before it crashes to desktop Other times it may appear to be triggered by a certain action such as loading an area Crash to desktop bugs are considered particularly problematic for users Since they frequently display no error message it can be very difficult to track down the source of the problem especially if the times they occur and the actions taking place right before the crash do not appear to have any pattern or common ground One way to track down the source of the problem for games is to run them in windowed mode Windows Vista has a feature that can help track down the cause of a CTD problem when it occurs on any program clarification needed Windows XP included a similar feature as well clarification needed Some computer programs such as StepMania and BBC s Bamzooki also crash to desktop if in full screen but display the error in a separate window when the user has returned to the desktop Web server crashes EditThe software running the web server behind a website may crash rendering it inaccessible entirely or providing only an error message instead of normal content For example if a site is using an SQL database such as MySQL for a script such as PHP and that SQL database server crashes then PHP will display a connection error Operating system crashes Edit A Blue Screen of Death as displayed in Windows XP Vista and 7 A kernel panic as displayed in OS X Mountain Lion An operating system crash commonly occurs when a hardware exception occurs that cannot be handled Operating system crashes can also occur when internal sanity checking logic within the operating system detects that the operating system has lost its internal self consistency Modern multi tasking operating systems such as Linux and macOS usually remain unharmed when an application program crashes Some operating systems e g z OS have facilities for Reliability availability and serviceability RAS and the OS can recover from the crash of a critical component whether due to hardware failure e g uncorrectable ECC error or to software failure e g a reference to an unassigned page Security and privacy implications of crashes EditDepending on the application the crash may contain the user s sensitive and private information 1 Moreover many software bugs which cause crashes are also exploitable for arbitrary code execution and other types of privilege escalation 2 3 For example a stack buffer overflow can overwrite the return address of a subroutine with an invalid value which will cause e g a segmentation fault when the subroutine returns However if an exploit overwrites the return address with a valid value the code in that address will be executed Crash reproduction EditWhen crashes are collected in the field using a crash reporter the next step for developers is to be able to reproduce them locally For this several techniques exist STAR uses symbolic execution 4 MuCrash mutates the test code of the application that has crashed 5 and EvoCrash performs evolutionary search 6 See also EditBlue Screen of Death Crash only software Data loss Guru Meditation Memory corruption Reboot Safe mode SystemRescueCD Undefined behaviorNotes Edit In OS 360 and successors the application normally uses an ABEND macro with a user completion code References Edit Satvat Kiavash Saxena Nitesh 2018 Crashing Privacy An Autopsy of a Web Browser s Leaked Crash Reports arXiv 1808 01718 Bibcode 2018arXiv180801718S a href Template Cite journal html title Template Cite journal cite journal a Cite journal requires journal help Analyze Crashes to Find Security Vulnerabilities in Your Apps Msdn microsoft com 26 April 2007 Archived from the original on 11 December 2011 Retrieved 26 June 2014 Jesse Ruderman Memory safety bugs in C code Squarefree com 1 November 2006 Archived from the original on 11 December 2013 Retrieved 26 June 2014 Chen Ning Kim Sunghun 2015 STAR Stack Trace Based Automatic Crash Reproduction via Symbolic Execution IEEE Transactions on Software Engineering 41 2 198 220 doi 10 1109 TSE 2014 2363469 ISSN 0098 5589 S2CID 6299263 Xuan Jifeng Xie Xiaoyuan Monperrus Martin 2015 Crash reproduction via test case mutation let existing test cases help Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering ESEC FSE 2015 PDF pp 910 913 doi 10 1145 2786805 2803206 ISBN 9781450336758 S2CID 10358523 Archived PDF from the original on 3 May 2019 Retrieved 15 February 2020 Soltani Mozhan Panichella Annibale van Deursen Arie 2017 A Guided Genetic Algorithm for Automated Crash Reproduction 2017 IEEE ACM 39th International Conference on Software Engineering ICSE pp 209 220 doi 10 1109 ICSE 2017 27 ISBN 978 1 5386 3868 2 S2CID 199514177 Archived from the original on 25 January 2022 Retrieved 21 December 2020 External links EditPicking Up The Pieces After A Computer Crash Retrieved from https en wikipedia org w index php title Crash computing amp oldid 1122662772, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.