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)
{
std::locale temp(path_locale); <<<<<<<<<<<<<<<<<<<<<<< line 918
path_locale = loc;
codecvt_facet_ptr =
&std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t>
>(path_locale);
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
$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)::c_locale_impl>,
static _S_global = 0x3fffb7fae0b8 <(anonymous namespace)::c_locale_impl>,
static _S_categories =
0x3fffb7f92cb8 <__gnu_cxx::category_names>, static _S_once = 0}
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
const std::codecvt<wchar_t, char, std::mbstate_t>* codecvt_facet_ptr; //
ditto
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.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1276262
Title:
Many tests of Boost v1.54 fail
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/boost1.54/+bug/1276262/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs