Peter Kümmel wrote:
Could you have a look at the sting passes to boost::basic_format?
support/lstrings.C  line 875

OK, it's as follows:

> (gdb) p fmt
> $18 = (const docstring &) @0xbfbfe5a8: {static npos = 4294967295,
>   _M_dataplus = {<std::allocator<wchar_t>> =
> {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data
> fields>}, _M_p = 0x87ebb0c}}
> (gdb) p/c 0xbfbfe5a8
> $19 = -88 '\250'
> (gdb) p arg1
> $20 = (docstring &) @0xbfbfe5a0: {static npos = 4294967295,
>   _M_dataplus = {<std::allocator<wchar_t>> =
> {<__gnu_cxx::new_allocator<wchar_t>> = {<No data fields>}, <No data
> fields>}, _M_p = 0x880a20c}}
> (gdb) p/c 0xbfbfe5a0
> $21 = -96 '\240'

So "something" is in both fmt and arg1 (I believe fmt is UCS-4LE format of string "/home/hge/.lyx-devel". Should this be visible on screen?).

bformat(_("You have specified a non-existent user "
   "LyX directory, %1$s.\n"
   "It is needed to keep your own configuration."),

No, lyx dies before the function boost::basic_format() returns a value, i.e. before it evaluates bformat(_( ..., ...)), I think. The trace after this point seems to go out of lyx sources.

I don't know whether it is useful information or not, but before bad_format_string() in exception.hpp is called after the above call and right before crash, maybe_throw_exception() in boost/format/paring.hpp contains:

boost::io::detail::maybe_throw_exception (exceptions=255 '\377', pos=25, size=28)

Thanks,

Koji

Reply via email to