On 06/29/2014 08:06 AM, Jean-Marc Lasgouttes wrote:
What is thé contents of thé truncated document ?

Here's a longer backtrace:

#0  0x0000000000a99af0 in lyx::to_utf8(std::basic_string<wchar_t, std::char_traits<wchar_t>, 
std::allocator<wchar_t> > const&) ()
No symbol table info available.
#1  0x00000000005c6577 in lyx::Paragraph::write(std::ostream&, lyx::BufferParams 
const&, unsigned long&) const ()
No symbol table info available.
#2  0x00000000005ed142 in lyx::Text::write(std::ostream&) const ()
No symbol table info available.
#3  0x0000000000830afa in lyx::Tabular::write(std::ostream&) const ()
No symbol table info available.
#4  0x00000000005c6bab in lyx::Paragraph::write(std::ostream&, lyx::BufferParams 
const&, unsigned long&) const ()
No symbol table info available.
#5  0x00000000005ed142 in lyx::Text::write(std::ostream&) const ()
No symbol table info available.
#6  0x00000000005c6bab in lyx::Paragraph::write(std::ostream&, lyx::BufferParams 
const&, unsigned long&) const ()
No symbol table info available.
#7  0x00000000005ed142 in lyx::Text::write(std::ostream&) const ()
No symbol table info available.
#8  0x000000000048bfa9 in lyx::Buffer::write(std::ostream&) const ()
No symbol table info available.
#9  0x000000000048e86b in lyx::Buffer::writeFile(lyx::support::FileName const&) 
const ()
No symbol table info available.
#10 0x000000000049bbac in lyx::Buffer::emergencyWrite() ()
No symbol table info available.
#11 0x00000000004bc335 in lyx::BufferList::emergencyWriteAll() ()
No symbol table info available.
#12 0x0000000000576650 in lyx::emergencyCleanup() ()
No symbol table info available.
#13 0x0000000000576781 in error_handler ()
No symbol table info available.
#14 <signal handler called>
No locals.
#15 0x0000000000a99af0 in lyx::to_utf8(std::basic_string<wchar_t, std::char_traits<wchar_t>, 
std::allocator<wchar_t> > const&) ()
No symbol table info available.
#16 0x00000000005c6577 in lyx::Paragraph::write(std::ostream&, lyx::BufferParams 
const&, unsigned long&) const ()
No symbol table info available.
#17 0x00000000005ed142 in lyx::Text::write(std::ostream&) const ()
No symbol table info available.
#18 0x0000000000830afa in lyx::Tabular::write(std::ostream&) const ()
No symbol table info available.
#19 0x00000000005c6bab in lyx::Paragraph::write(std::ostream&, lyx::BufferParams 
const&, unsigned long&) const ()
No symbol table info available.
#20 0x00000000005ed142 in lyx::Text::write(std::ostream&) const ()
No symbol table info available.
#21 0x00000000005c6bab in lyx::Paragraph::write(std::ostream&, lyx::BufferParams 
const&, unsigned long&) const ()
No symbol table info available.
#22 0x00000000005ed142 in lyx::Text::write(std::ostream&) const ()
No symbol table info available.
#23 0x000000000048bfa9 in lyx::Buffer::write(std::ostream&) const ()
No symbol table info available.
#24 0x000000000048e86b in lyx::Buffer::writeFile(lyx::support::FileName const&) 
const ()
No symbol table info available.
#25 0x00000000004a1b2d in lyx::Buffer::autoSave() const ()
No symbol table info available.
#26 0x00000000008aacfb in 
lyx::frontend::GuiView::GuiViewPrivate::autosaveAndDestroy(lyx::Buffer const*, 
lyx::Buffer*) ()
No symbol table info available.

Note #25: autoSave. And we get the same crash twice: Once when writing the file the first time, then again when doing the emergency save.

The key part is:

#15 0x0000000000a99af0 in lyx::to_utf8(std::basic_string<wchar_t, std::char_traits<wchar_t>, 
std::allocator<wchar_t> > const&) ()
No symbol table info available.
#16 0x00000000005c6577 in lyx::Paragraph::write(std::ostream&, lyx::BufferParams 
const&, unsigned long&) const ()
No symbol table info available.
#17 0x00000000005ed142 in lyx::Text::write(std::ostream&) const ()
No symbol table info available.
#18 0x0000000000830afa in lyx::Tabular::write(std::ostream&) const ()
No symbol table info available.

So the crash actually is within a table, but it's happening in the call to to_utf8. The only such calls in Paragraph::write are at the very beginning and the very end, the latter hidden in the call to flushString (which may be inlined).

Is invalid data being passed to to_utf8?

Richard

Reply via email to