Understanding C++ error messages
The following simple Linux command can be extremely useful to understand the
occasionally cryptic C++ error messages. The All C++ and Java function names are encoded
into a low-level assembly label (this process is known as mangling). The c++filt
program does the inverse mapping: it decodes (demangles) low-level names into
user-level names so that the linker can keep these overloaded functions
from clashing.
Usage:
> c++filt cryptic_c++_error_message
For example,
> c++filt _ZN5paramD1Ev
returns
param::~param()
which refers to the destructor of my param class.