At line 918, C++ try to do some initialization. This seems to imply to use field _M_impl of path_locale, which is 0x0.
It seems that no initialization of path_locale is done and thus _M_impl stay 0x0.
which does not seems to do any initialization (gdb don't stop there). however, the comment says that path_locale is initialiazed by line below, where gdb does not stop.
After debugging "some" more, it looks like the issue is in:
BOOST : libs/filesystem /src/path. cpp
std::locale path::imbue(const std::locale& loc) <<<<<<< <<<<<<< << line 918 facet_ptr = std::use_ facet<std: :codecvt< wchar_t, char, std::mbstate_t> >(path_locale);
{
std::locale temp(path_locale); <<<<<<<
path_locale = loc;
codecvt_
&
return temp;
}
At line 918, C++ try to do some initialization. This seems to imply to use field _M_impl of path_locale, which is 0x0.
It seems that no initialization of path_locale is done and thus _M_impl stay 0x0.
p path_locale ::c_locale_ impl>, static _S_global = 0x3fffb7fae0b8 <(anonymous namespace) ::c_locale_ impl>, static _S_categories = cxx::category_ names>, static _S_once = 0}
$23 = {static none = 0, static ctype = 1, static numeric = 2, static collate = 4, static time = 8, static monetary = 16, static messages = 32, static all = 63, _M_impl = 0x0,
static _S_classic = 0x3fffb7fae0b8 <(anonymous namespace)
0x3fffb7f92cb8 <__gnu_
So, the question is: why path_locale has not been initialized ? and why this happens in PPC/LE and not elsewhere ?
Since, at line 868, we have:
std::locale path_locale; // initialized by path::codecvt() below wchar_t, char, std::mbstate_t>* codecvt_facet_ptr; // ditto
const std::codecvt<
which does not seems to do any initialization (gdb don't stop there). however, the comment says that path_locale is initialiazed by line below, where gdb does not stop.