Known issues.
Static instantiation in implicitly implemented C++ methods causes a GDB segmentation fault in newer Glibc versions.
Since the switch from EGlibc to GLibc in Yocto the following exception is known when instantiating static variables in implicitly implemented C++ member methods.
GDB complains with the following exception.
Program received signal SIGSEGV, Segmentation fault.
_dl_debug_initialize (ldbase=1447, ns=195728) at dl-debug.c:55
55 if (r->r_map == NULL || ldbase != 0)
if something like the following code excerpt is implemented:
...
class AnotherClass
{
public:
AnotherClass();
};
...
class AClass
{
public:
void pub()
{
static Anotherclass crashingInstance; // Crash here ... move pub() to void AClass
,! :pub()
}
};
...
MainClass::MainClass()
{
AClass anInstance;
anInstace.pub();
}
...
The error is gone if the method is converted to an explicit implementation:
...
class AnotherClass
{
public:
AnotherClass();
};
...
class AClass
{
public:
void pub()
};
void TestClass2::pub()
{
static Anotherclass crashingInstance;
}
...
MainClass::MainClass()
{
AClass anInstance;
anInstace.pub();
}
...