# Runtime error detection

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Runtime_error_detection
> Markdown URL: https://mediated.wiki/source/Runtime_error_detection.md
> Source: https://en.wikipedia.org/wiki/Runtime_error_detection
> Source revision: 1252662603
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Software verification method

Program execution General concepts Code Translation Compiler Compile time Optimizing compiler Linking Execution Runtime system Executable Interpreter Virtual machine Intermediate representation (IR) Types of code Source code Object code Bytecode Machine code Microcode Compilation strategies Ahead-of-time (AOT) Just-in-time (JIT) Tracing just-in-time Compile and go system Precompilation Transcompilation Recompilation Meta-tracing Notable runtimes Android Runtime (ART) BEAM (Erlang) Common Language Runtime (CLR) and Mono CPython and PyPy crt0 (C target-specific initializer) Java virtual machine (JVM) LuaJIT Objective-C and Swift's V8 and Node.js Zend Engine (PHP) Notable compilers & toolchains GNU Compiler Collection (GCC) LLVM and Clang MSVC Glasgow Haskell Compiler (GHC) v t e

**Runtime error detection** is a [software verification](/source/Software_verification) method that analyzes a software application as it executes and reports [defects](/source/Software_bug) that are detected during that execution. It can be applied during [unit testing](/source/Unit_testing), [component testing](/source/Component_testing), [integration testing](/source/Integration_testing), [system testing](/source/System_testing) (automated/scripted or manual), or [penetration testing](/source/Penetration_test).

Runtime error detection can identify defects that manifest themselves only at runtime (for example, file overwrites) and zeroing in on the root causes of the application crashing, running slowly, or behaving unpredictably. Defects commonly detected by runtime error detection include:

- [Race conditions](/source/Race_condition)

- [Exceptions](/source/Interrupt)

- [Resource leaks](/source/Resource_leak)

- [Memory leaks](/source/Memory_leak)

- [Security attack vulnerabilities](/source/Vulnerability_(computing)) (e.g., [SQL injection](/source/SQL_injection))

- [Null pointers](/source/Null_pointer)

- [Uninitialized memory](/source/Memory_corruption)

- [Buffer overflows](/source/Buffer_overflow)[1]

Runtime error detection tools can only detect errors in the executed control flow of the application.[2]

## See also

- [Development testing](/source/Development_testing)

- [Software testing](/source/Software_testing)

- [Memory debugger](/source/Memory_debugger)

- [BoundsChecker](/source/BoundsChecker)

- [Runtime verification](/source/Runtime_verification)

## References

1. **[^](#cite_ref-1)** [Runtime Error Detection](http://www.parasoft.com/jsp/capabilities/runtime_error_detection.jsp) by [Parasoft](/source/Parasoft)

1. **[^](#cite_ref-2)** [MUST: A Scalable Approach to Runtime Error Detection in MPI Programs](https://rd.springer.com/chapter/10.1007/978-3-642-11261-4_5) by Tobias Hilbrich, Martin Schulz, Bronis R. de Supinski, Matthias S. Müller, in Tools for High Performance Computing 2009

v t e Memory management Memory management as a function of an operating system Hardware Memory management unit (MMU) Translation lookaside buffer (TLB) Input–output memory management unit (IOMMU) Virtual memory Demand paging Memory paging Page table Virtual memory compression Segmentation Protected mode Real mode Virtual 8086 mode x86 memory segmentation Allocator dlmalloc Hoard jemalloc libumem mimalloc ptmalloc Manual means Static memory allocation C dynamic memory allocation new and delete (C++) Garbage collection Automatic Reference Counting Boehm garbage collector Cheney's algorithm Concurrent mark sweep collector Finalizer Garbage Garbage-first collector Mark–compact algorithm Reference counting Tracing garbage collection Strong reference Weak reference Safety Buffer overflow Buffer over-read Dangling pointer Stack overflow Issues Fragmentation Memory leak Unreachable memory Other Automatic variable Constructors Destructors Region-based memory management Memory pool Memory management Virtual memory Automatic memory management Memory management algorithms Memory management software

---
Adapted from the Wikipedia article [Runtime error detection](https://en.wikipedia.org/wiki/Runtime_error_detection) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Runtime_error_detection?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
