Error map

pure virtual method called C++: pure virtual method called — terminate called without an active exception

C/C++ · layer 4, Application & API

Open the full error page →

Centre: this error. First ring: errors it is linked with (7). Outer ring: what those are linked with. Colours show the layer of a request each error belongs to. Click any dot to re-centre the map on it; hover to follow its connections. The centre dot opens the error page.

pure virtual method called — C++: pure virtual method called — terminate called without an active exception (C/C++)pure virtua…call of overloaded is ambiguous — C++: error: call of overloaded 'f(int)' is ambiguous (C/C++)call of overloaded …cannot declare variable to be of abstract type — C++: error: cannot declare variable 'x' to be of abstract type 'Shape' (pure virtual functions) (C/C++)cannot declare vari…undefined reference to vtable — C++: undefined reference to `vtable for X' — virtual function not defined (C/C++)undefined reference…Assertion failed — C/C++: Assertion `x > 0' failed. Aborted (core dumped) — assert() condition was false (C/C++)Assertion failedterminate called without an active exception — C++: terminate called without an active exception — std::thread destroyed while joinable (C/C++)terminate called wi…AddressSanitizer: heap-buffer-overflow — C/C++: ==ERROR: AddressSanitizer: heap-buffer-overflow on address — READ/WRITE of size N (C/C++)AddressSanitizer: h…AddressSanitizer: heap-use-after-free — C/C++: ==ERROR: AddressSanitizer: heap-use-after-free on address — memory used after delete/free (C/C++)AddressSanitizer: h…E0308 — Rust: error[E0308]: mismatched types — expected `X`, found `Y` (Rust)E0308no match for 'operator' — C++: error: no match for 'operator<<' (operand types are 'std::ostream' and 'X') (C/C++)no match for 'opera…invalid conversion from — C++: error: invalid conversion from 'const char*' to 'char*' [-fpermissive] (C/C++)invalid conversion …use of deleted function — C++: error: use of deleted function 'X::X(const X&)' — copying a non-copyable type (C/C++)use of deleted func…no matching function for call to — C++: error: no matching function for call to 'f(int, const char*)' (C/C++)no matching functio…incomplete type — C++: error: invalid use of incomplete type 'class X' — forward declaration only (C/C++)incomplete typeundefined reference to — C/C++: undefined reference to `function' — collect2: error: ld returned 1 exit status (C/C++)undefined reference…multiple definition of — C/C++: multiple definition of `x'; first defined here — ld returned 1 exit status (C/C++)multiple definition…undefined reference to main — C/C++: undefined reference to `main' — (.text+0x20) in crt1.o (C/C++)undefined reference…terminate called after throwing an instance of — C++: terminate called after throwing an instance of 'std::out_of_range' — what(): vector::_M_range_check (C/C++)terminate called af…Segmentation fault — C/C++: Segmentation fault (core dumped) — SIGSEGV from a null, dangling or out-of-bounds pointer (C/C++)Segmentation faultruntime error: — C/C++: runtime error: signed integer overflow / null pointer / shift exponent too large (UndefinedBehaviorSanitizer) (C/C++)runtime error:undefined reference to pthread_create — C/C++: undefined reference to `pthread_create' — missing -pthread (also `dlopen`, `clock_gettime`) (C/C++)undefined reference…std::bad_alloc — C++: terminate called after throwing an instance of 'std::bad_alloc' — what(): std::bad_alloc (C/C++)std::bad_allocMEMORY_MANAGEMENT — Blue Screen: MEMORY_MANAGEMENT (Stop code 0x0000001A) (Windows)MEMORY_MANAGEMENTSIGSEGV — Segmentation fault (core dumped) (Linux)SIGSEGVOOM killer — Killed / Out of memory: Killed process (Linux OOM killer) (Linux)OOM killerCannot allocate memory — fork: Cannot allocate memory / ENOMEM (Linux)Cannot allocate mem…0xC0000005 — The application was unable to start correctly (0xc0000005) / Exception code 0xc0000005 access violation (Windows)0xC0000005double free or corruption — C/C++: free(): double free detected / double free or corruption (out) — Aborted (core dumped) (C/C++)double free or corr…

Directly related (7)

call of overloaded is ambiguousC/C++

C++: error: call of overloaded 'f(int)' is ambiguous

Two or more overloads fit equally well, so the compiler refuses to guess which function you meant.

cannot declare variable to be of abstract typeC/C++

C++: error: cannot declare variable 'x' to be of abstract type 'Shape' (pure virtual functions)

You tried to create an object of a class that still has pure virtual functions; only a derived class that overrides all of them c…

undefined reference to vtableC/C++

C++: undefined reference to `vtable for X' — virtual function not defined

The linker cannot find the class's virtual table, which means at least one virtual member function was declared but never defined…

Assertion failedC/C++

C/C++: Assertion `x > 0' failed. Aborted (core dumped) — assert() condition was false

An `assert()` in your code or in a library found its condition false and aborted the program on purpose.

terminate called without an active exceptionC/C++

C++: terminate called without an active exception — std::thread destroyed while joinable

A `std::thread` object was destroyed (or reassigned) while its thread was still running, so the C++ runtime called `std::terminat…

AddressSanitizer: heap-buffer-overflowC/C++

C/C++: ==ERROR: AddressSanitizer: heap-buffer-overflow on address — READ/WRITE of size N

AddressSanitizer caught a read or write just outside a heap block — an array index or length that is off by one or more.

AddressSanitizer: heap-use-after-freeC/C++

C/C++: ==ERROR: AddressSanitizer: heap-use-after-free on address — memory used after delete/free

The program read or wrote a heap block after it had been freed; ASan shows who freed it and where it was allocated.

Two steps away (20)

E0308Rust

Rust: error[E0308]: mismatched types — expected `X`, found `Y`

A value’s type doesn’t match what the context expects — common with &str vs String, Option/Result vs plain values, and integer ty…

no match for 'operator'C/C++

C++: error: no match for 'operator<<' (operand types are 'std::ostream' and 'X')

You used an operator on a type that does not define it — most often printing your own class with `

invalid conversion fromC/C++

C++: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]

C++ forbids silently dropping `const` or converting between unrelated pointer types — typically a string literal assigned to `cha…

use of deleted functionC/C++

C++: error: use of deleted function 'X::X(const X&)' — copying a non-copyable type

The code needs a function (usually a copy constructor or assignment) that was deleted explicitly or implicitly, as for `std::uniq…

no matching function for call toC/C++

C++: error: no matching function for call to 'f(int, const char*)'

No overload of the function accepts the arguments you passed — wrong count, wrong types, or a missing conversion.

incomplete typeC/C++

C++: error: invalid use of incomplete type 'class X' — forward declaration only

You used a class that has only been forward-declared (so its size and members are unknown) where the full definition is required.

undefined reference toC/C++

C/C++: undefined reference to `function' — collect2: error: ld returned 1 exit status

The linker can’t find the definition of a function or variable that was declared and used.

multiple definition ofC/C++

C/C++: multiple definition of `x'; first defined here — ld returned 1 exit status

The linker found the same function or global variable defined in two object files — usually something defined in a header.

undefined reference to mainC/C++

C/C++: undefined reference to `main' — (.text+0x20) in crt1.o

The linker has no `main` function: the file with `main` is not compiled or linked, or `main` is spelled or declared incorrectly.

terminate called after throwing an instance ofC/C++

C++: terminate called after throwing an instance of 'std::out_of_range' — what(): vector::_M_range_check

A C++ exception wasn’t caught anywhere, so std::terminate aborted the program. what() tells you the reason.

Segmentation faultC/C++

C/C++: Segmentation fault (core dumped) — SIGSEGV from a null, dangling or out-of-bounds pointer

The program touched memory it is not allowed to access — a null or dangling pointer, an out-of-range array index, or a stack over…

runtime error:C/C++

C/C++: runtime error: signed integer overflow / null pointer / shift exponent too large (UndefinedBehaviorSanitizer)

UBSan detected code that triggers undefined behaviour (overflow, null dereference, out-of-bounds index, bad shift, misaligned acc…

undefined reference to pthread_createC/C++

C/C++: undefined reference to `pthread_create' — missing -pthread (also `dlopen`, `clock_gettime`)

Your program uses threads (or another system library) but the linker was not told to link it.

std::bad_allocC/C++

C++: terminate called after throwing an instance of 'std::bad_alloc' — what(): std::bad_alloc

`new` or a container could not get the memory requested — either the system is out of memory or the size was absurdly large (ofte…

MEMORY_MANAGEMENTWindows

Blue Screen: MEMORY_MANAGEMENT (Stop code 0x0000001A)

Windows detected a severe memory-management error — commonly faulty RAM, unstable memory settings or a bad driver.

SIGSEGVLinux

Segmentation fault (core dumped)

A program accessed memory it wasn’t allowed to, and the kernel killed it with SIGSEGV (exit code 139).

OOM killerLinux

Killed / Out of memory: Killed process (Linux OOM killer)

The kernel ran out of memory and killed a process to recover — the program just prints “Killed” (exit code 137).

Cannot allocate memoryLinux

fork: Cannot allocate memory / ENOMEM

The kernel refused a memory allocation — RAM and swap are exhausted, or overcommit/cgroup limits block it.

0xC0000005Windows

The application was unable to start correctly (0xc0000005) / Exception code 0xc0000005 access violation

A program tried to read or write memory it doesn’t own and Windows stopped it — buggy software, bad drivers/plugins, security sof…

double free or corruptionC/C++

C/C++: free(): double free detected / double free or corruption (out) — Aborted (core dumped)

Memory was freed twice or the heap was corrupted (buffer overflow, freeing a non-heap pointer), so glibc aborted the program.