Hi Jean-Marc and all others,
I downloaded Lyx on Saturday and started the biggest beta test program
that the Institute for Telematics has ever witnessed (there will be at
least three persons doing thourough testing of a purify'd version of
Lyx).
Well, after about a few hours I decided to stop the beta testing
abruptly because the current developer code is far away from being
stable. Enclosed I send you several purify warnings (I already filtered
out a lot of minor warnings). I think these free memory reads should not
happen at all. Moreover, there is a problem with loading Lyx files.
Well, look yourself at the attached messages.
In addition to the Purify warnings, I send you a file generated by Lyx
1.1.4 that cannot be re-loaded (but with Lyx-1.0.4)
Any feedback is welcome.
Michael
PS: I think there is a problem with the lyx server at the moment. Let's
hope it did not crash...
--
======================================================================
Michael Schmitt phone: +49 451 500 3725
Institute for Telematics secretary: +49 451 500 3721
Medical University of Luebeck fax: +49 451 500 3722
Ratzeburger Allee 160 eMail: [EMAIL PROTECTED]
D-23538 Luebeck, Germany WWW: http://www.itm.mu-luebeck.de
======================================================================
FMR: Free memory read
This is occurring while in:
LyXParagraph*LyXParagraph::Previous() [paragraph.C:1604]
Row*LyXText::GetRow(LyXParagraph*,int,long&)const [text.C:4084]
void LyXText::SetCursorIntern(LyXParagraph*,int)const [text2.C:2864]
bool LyXText::TextHandleUndo(Undo*) [text2.C:3398]
bool LyXText::TextUndo() [text2.C:3301]
void BufferView::menuUndo() [lyx_cb.C:2127]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:820]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Reading 4 bytes from 0x114dd04 in the heap.
Address 0x114dd04 is 188 bytes into a freed block at 0x114dc48 of 260 bytes.
This block was allocated from:
malloc [rtlib.o]
c2n6Fi_Pv_ [libCrun.so.1]
void*operator new(unsigned) [rtlib.o]
void LyXParagraph::BreakParagraph(int,int) [paragraph.C:1655]
void LyXText::BreakParagraph(char) [text.C:1403]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1749]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
There have been 0 frees since this block was freed from:
free [rtlib.o]
c2k6FPv_v_ [libCrun.so.1]
void operator delete(void*) [rtlib.o]
bool LyXText::TextHandleUndo(Undo*) [text2.C:3373]
bool LyXText::TextUndo() [text2.C:3301]
void BufferView::menuUndo() [lyx_cb.C:2127]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:820]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Cut a few words and tried to insert them on the same line:
FMR: Free memory read
This is occurring while in:
void LyXScreen::ToggleSelection(bool) [screen.C:605]
void BufferView::paste() [lyx_cb.C:2464]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:832]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Reading 2 bytes from 0xec9680 in the heap.
Address 0xec9680 is 8 bytes into a freed block at 0xec9678 of 28 bytes.
This block was allocated from:
malloc [rtlib.o]
c2n6Fi_Pv_ [libCrun.so.1]
void*operator new(unsigned) [rtlib.o]
void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:313]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:872]
void LyXText::PasteSelection() [text2.C:2345]
void BufferView::paste() [lyx_cb.C:2460]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:832]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
There have been 6 frees since this block was freed from:
free [rtlib.o]
c2k6FPv_v_ [libCrun.so.1]
void operator delete(void*) [rtlib.o]
void LyXText::RemoveRow(Row*)const [text2.C:290]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:866]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::PasteSelection() [text2.C:2351]
void BufferView::paste() [lyx_cb.C:2460]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:832]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Just removed a few single characters, resulting in a bunch of error messages:
FMR: Free memory read
This is occurring while in:
int LyXText::NextBreakPoint(const Row*,int)const [text.C:628]
void LyXText::BreakAgain(Row*)const [text.C:1279]
int LyXText::FullRebreak() [text2.C:899]
void BufferView::update(signed char) [BufferView.C:1707]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Reading 4 bytes from 0x1587f50 in the heap.
Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
This block was allocated from:
malloc [rtlib.o]
c2n6Fi_Pv_ [libCrun.so.1]
void*operator new(unsigned) [rtlib.o]
void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
void LyXText::AppendParagraph(Row*)const [text.C:1258]
void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:872]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorRightIntern()const [text2.C:3019]
void LyXText::Delete() [text.C:2937]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
There have been 13 frees since this block was freed from:
free [rtlib.o]
c2k6FPv_v_ [libCrun.so.1]
void operator delete(void*) [rtlib.o]
void LyXText::RemoveRow(Row*)const [text2.C:290]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:855]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorLeftIntern()const [text2.C:2995]
void LyXText::Backspace() [text.C:3070]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
FMR: Free memory read
This is occurring while in:
int LyXText::LabelEnd(const Row*)const [text.C:558]
int LyXText::NextBreakPoint(const Row*,int)const [text.C:649]
void LyXText::BreakAgain(Row*)const [text.C:1279]
int LyXText::FullRebreak() [text2.C:899]
void BufferView::update(signed char) [BufferView.C:1707]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Reading 4 bytes from 0x1587f50 in the heap.
Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
This block was allocated from:
malloc [rtlib.o]
c2n6Fi_Pv_ [libCrun.so.1]
void*operator new(unsigned) [rtlib.o]
void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
void LyXText::AppendParagraph(Row*)const [text.C:1258]
void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:872]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorRightIntern()const [text2.C:3019]
void LyXText::Delete() [text.C:2937]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
There have been 13 frees since this block was freed from:
free [rtlib.o]
c2k6FPv_v_ [libCrun.so.1]
void operator delete(void*) [rtlib.o]
void LyXText::RemoveRow(Row*)const [text2.C:290]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:855]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorLeftIntern()const [text2.C:2995]
void LyXText::Backspace() [text.C:3070]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
FMR: Free memory read
This is occurring while in:
int LyXText::RightMargin(const Row*)const [text.C:496]
int LyXText::NextBreakPoint(const Row*,int)const [text.C:650]
void LyXText::BreakAgain(Row*)const [text.C:1279]
int LyXText::FullRebreak() [text2.C:899]
void BufferView::update(signed char) [BufferView.C:1707]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Reading 4 bytes from 0x1587f50 in the heap.
Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
This block was allocated from:
malloc [rtlib.o]
c2n6Fi_Pv_ [libCrun.so.1]
void*operator new(unsigned) [rtlib.o]
void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
void LyXText::AppendParagraph(Row*)const [text.C:1258]
void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:872]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorRightIntern()const [text2.C:3019]
void LyXText::Delete() [text.C:2937]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
There have been 13 frees since this block was freed from:
free [rtlib.o]
c2k6FPv_v_ [libCrun.so.1]
void operator delete(void*) [rtlib.o]
void LyXText::RemoveRow(Row*)const [text2.C:290]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:855]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorLeftIntern()const [text2.C:2995]
void LyXText::Backspace() [text.C:3070]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
FMR: Free memory read
This is occurring while in:
int LyXText::LeftMargin(const Row*)const [text.C:287]
int LyXText::NextBreakPoint(const Row*,int)const [text.C:675]
void LyXText::BreakAgain(Row*)const [text.C:1279]
int LyXText::FullRebreak() [text2.C:899]
void BufferView::update(signed char) [BufferView.C:1707]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Reading 4 bytes from 0x1587f50 in the heap.
Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
This block was allocated from:
malloc [rtlib.o]
c2n6Fi_Pv_ [libCrun.so.1]
void*operator new(unsigned) [rtlib.o]
void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
void LyXText::AppendParagraph(Row*)const [text.C:1258]
void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:872]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorRightIntern()const [text2.C:3019]
void LyXText::Delete() [text.C:2937]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
There have been 13 frees since this block was freed from:
free [rtlib.o]
c2k6FPv_v_ [libCrun.so.1]
void operator delete(void*) [rtlib.o]
void LyXText::RemoveRow(Row*)const [text2.C:290]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:855]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorLeftIntern()const [text2.C:2995]
void LyXText::Backspace() [text.C:3070]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
FMR: Free memory read
This is occurring while in:
void LyXText::BreakAgain(Row*)const [text.C:1283]
int LyXText::FullRebreak() [text2.C:899]
void BufferView::update(signed char) [BufferView.C:1707]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Reading 4 bytes from 0x1587f50 in the heap.
Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
This block was allocated from:
malloc [rtlib.o]
c2n6Fi_Pv_ [libCrun.so.1]
void*operator new(unsigned) [rtlib.o]
void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
void LyXText::AppendParagraph(Row*)const [text.C:1258]
void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:872]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorRightIntern()const [text2.C:3019]
void LyXText::Delete() [text.C:2937]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
There have been 13 frees since this block was freed from:
free [rtlib.o]
c2k6FPv_v_ [libCrun.so.1]
void operator delete(void*) [rtlib.o]
void LyXText::RemoveRow(Row*)const [text2.C:290]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:855]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorLeftIntern()const [text2.C:2995]
void LyXText::Backspace() [text.C:3070]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
FMR: Free memory read
This is occurring while in:
int LyXText::RowLast(const Row*)const [text.C:124]
int LyXText::Fill(const Row*,int)const [text.C:743]
void LyXText::BreakAgain(Row*)const [text.C:1314]
int LyXText::FullRebreak() [text2.C:899]
void BufferView::update(signed char) [BufferView.C:1707]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Reading 4 bytes from 0x1587f64 in the heap.
Address 0x1587f64 is 20 bytes into a freed block at 0x1587f50 of 28 bytes.
This block was allocated from:
malloc [rtlib.o]
c2n6Fi_Pv_ [libCrun.so.1]
void*operator new(unsigned) [rtlib.o]
void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
void LyXText::AppendParagraph(Row*)const [text.C:1258]
void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:872]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorRightIntern()const [text2.C:3019]
void LyXText::Delete() [text.C:2937]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
There have been 13 frees since this block was freed from:
free [rtlib.o]
c2k6FPv_v_ [libCrun.so.1]
void operator delete(void*) [rtlib.o]
void LyXText::RemoveRow(Row*)const [text2.C:290]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:855]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorLeftIntern()const [text2.C:2995]
void LyXText::Backspace() [text.C:3070]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
FMR: Free memory read
This is occurring while in:
int LyXText::Fill(const Row*,int)const [text.C:745]
void LyXText::BreakAgain(Row*)const [text.C:1314]
int LyXText::FullRebreak() [text2.C:899]
void BufferView::update(signed char) [BufferView.C:1707]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Reading 4 bytes from 0x1587f50 in the heap.
Address 0x1587f50 is at the beginning of a freed block of 28 bytes.
This block was allocated from:
malloc [rtlib.o]
c2n6Fi_Pv_ [libCrun.so.1]
void*operator new(unsigned) [rtlib.o]
void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
void LyXText::AppendParagraph(Row*)const [text.C:1258]
void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:872]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorRightIntern()const [text2.C:3019]
void LyXText::Delete() [text.C:2937]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
There have been 13 frees since this block was freed from:
free [rtlib.o]
c2k6FPv_v_ [libCrun.so.1]
void operator delete(void*) [rtlib.o]
void LyXText::RemoveRow(Row*)const [text2.C:290]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:855]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorLeftIntern()const [text2.C:2995]
void LyXText::Backspace() [text.C:3070]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
FMW: Free memory write
This is occurring while in:
void LyXText::SetHeightOfRow(Row*)const [text.C:1053]
void LyXText::BreakAgain(Row*)const [text.C:1315]
int LyXText::FullRebreak() [text2.C:899]
void BufferView::update(signed char) [BufferView.C:1707]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1265]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Writing 2 bytes to 0x1587f62 in the heap.
Address 0x1587f62 is 18 bytes into a freed block at 0x1587f50 of 28 bytes.
This block was allocated from:
malloc [rtlib.o]
c2n6Fi_Pv_ [libCrun.so.1]
void*operator new(unsigned) [rtlib.o]
void LyXText::InsertRow(Row*,LyXParagraph*,int)const [text2.C:235]
void LyXText::AppendParagraph(Row*)const [text.C:1258]
void LyXText::InsertParagraph(LyXParagraph*,Row*)const [text2.C:325]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:872]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorRightIntern()const [text2.C:3019]
void LyXText::Delete() [text.C:2937]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1587]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
There have been 13 frees since this block was freed from:
free [rtlib.o]
c2k6FPv_v_ [libCrun.so.1]
void operator delete(void*) [rtlib.o]
void LyXText::RemoveRow(Row*)const [text2.C:290]
void LyXText::RedoParagraphs(const LyXCursor&,const LyXParagraph*)const
[text2.C:855]
void LyXText::DeleteEmptyParagraphMechanism(const LyXCursor&)const
[text2.C:3128]
void LyXText::SetCursor(LyXParagraph*,int)const [text2.C:2826]
void LyXText::CursorLeftIntern()const [text2.C:2995]
void LyXText::Backspace() [text.C:3070]
std::basic_string<char,std::char_traits<char>,std::allocator<char>
>LyXFunc::Dispatch(int,const char*) [lyxfunc.C:1699]
int LyXFunc::processKeyEvent(_XEvent*) [lyxfunc.C:283]
int LyXView::KeyPressMask_raw_callback(forms_*,void*) [LyXView.C:361]
C_LyXView_KeyPressMask_raw_callback [LyXView.C:395]
do_interaction_step [libforms.a]
fl_treat_interaction_events [libforms.a]
fl_check_forms [libforms.a]
void LyXGUI::runTime() [lyx_gui.C:635]
LyX::LyX(int*,char**) [lyx_main.C:129]
main [main.C:43]
_start [crt1.o]
Ok, there were about hundred additional error reports but I think the free
memory write is among the worst. The other bugs a sorted chronologically.
When I saved the document I lost the work of about 3 hours because lyx
wasn't able to read the file anymore :-)
No, I didn't. I started lyx-1.0.4 which accepted it without any complaint.
Phew!!!!!!!
#LyX 1.1 created this file. For more info see http://www.lyx.org/
\lyxformat 2.15
\textclass article
\language default
\inputencoding default
\fontscheme default
\graphics default
\paperfontsize 10
\spacing single
\papersize Default
\paperpackage widemarginsa4
\use_geometry 0
\use_amsmath 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation skip
\defskip medskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default
\layout Standard
Institut für Telematik
\hfill
10
\series medium
\size normal
.
\series default
\size default
Janua
\series medium
\size normal
r
\series default
\size default
2000
\layout Standard
\series bold
\size largest
Informatik III - Übungsblatt 7
\layout Standard
\line_bottom
Musterl
\color black
ösungen
\layout Enumerate
AUfgabe X
\layout Standard
\added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
multicol5
6 22 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
1 1 0 0
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 1 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
\newline
2
\newline
4
\newline
1
\newline
5
\newline
6
\newline
3
\newline
1
\newline
4
\newline
5
\newline
2
\newline
4
\newline
5
\newline
6
\newline
3
\newline
1
\newline
3
\newline
5
\newline
2
\newline
3
\newline
4
\newline
\begin_inset Formula \( \sum \)
\end_inset
\newline
F
\newline
2
\newline
2
\newline
2
\newline
2
\newline
6
\newline
6
\newline
6
\newline
6
\newline
6
\newline
6
\newline
6
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
2
\newline
2
\newline
2
\newline
\newline
I
\newline
-
\newline
4
\newline
4
\newline
4
\newline
4
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
6
\newline
6
\newline
6
\newline
6
\newline
6
\newline
6
\newline
6
\newline
4
\newline
\newline
F
\newline
-
\newline
-
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
\newline
O
\newline
-
\newline
-
\newline
-
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
2
\newline
2
\newline
2
\newline
2
\newline
2
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
\newline
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
\newline
*
\newline
\newline
*
\newline
\newline
*
\newline
*
\newline
*
\newline
*
\newline
\newline
\newline
*
\newline
\newline
*
\newline
14
\layout Standard
\added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
multicol5
6 22 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
1 1 0 0
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 1 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
\newline
2
\newline
4
\newline
1
\newline
5
\newline
6
\newline
3
\newline
1
\newline
4
\newline
5
\newline
2
\newline
4
\newline
5
\newline
6
\newline
3
\newline
1
\newline
3
\newline
5
\newline
2
\newline
3
\newline
4
\newline
\begin_inset Formula \( \sum \)
\end_inset
\newline
L
\newline
2
\newline
2
\newline
2
\newline
2
\newline
6
\newline
6
\newline
6
\newline
6
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
\newline
R
\newline
-
\newline
4
\newline
4
\newline
4
\newline
4
\newline
3
\newline
3
\newline
3
\newline
3
\newline
2
\newline
2
\newline
2
\newline
2
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
\newline
U
\newline
-
\newline
-
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
6
\newline
6
\newline
6
\newline
6
\newline
6
\newline
2
\newline
2
\newline
2
\newline
\newline
\newline
-
\newline
-
\newline
-
\newline
5
\newline
5
\newline
5
\newline
5
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
4
\newline
\newline
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
\newline
*
\newline
*
\newline
*
\newline
\newline
\newline
*
\newline
*
\newline
*
\newline
\newline
\newline
*
\newline
\newline
*
\newline
14
\layout Standard
\added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
multicol5
6 22 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
1 1 0 0
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 1 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
\newline
2
\newline
4
\newline
1
\newline
5
\newline
6
\newline
3
\newline
1
\newline
4
\newline
5
\newline
2
\newline
4
\newline
5
\newline
6
\newline
3
\newline
1
\newline
3
\newline
5
\newline
2
\newline
3
\newline
4
\newline
\begin_inset Formula \( \sum \)
\end_inset
\newline
O
\newline
2
\newline
2
\newline
2
\newline
2
\newline
6
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
3
\newline
4
\newline
\newline
P
\newline
-
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
6
\newline
6
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
\newline
T
\newline
-
\newline
-
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
1
\newline
2
\newline
2
\newline
2
\newline
2
\newline
2
\newline
2
\newline
2
\newline
2
\newline
2
\newline
2
\newline
2
\newline
\newline
\newline
-
\newline
-
\newline
-
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
5
\newline
\newline
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
\newline
\newline
\newline
*
\newline
\newline
\newline
*
\newline
\newline
*
\newline
\newline
\newline
\newline
\newline
*
\newline
9
\layout Standard
\added_space_top 0.3cm \added_space_bottom 0.3cm \align center \LyXTable
multicol5
6 22 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
1 1 0 0
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 0 "" ""
8 1 1 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
\newline
2
\newline
4
\newline
1
\newline
5
\newline
6
\newline
3
\newline
1
\newline
4
\newline
5
\newline
2
\newline
4
\newline
5
\newline
6
\newline
3
\newline
1
\newline
3
\newline
5
\newline
2
\newline
3
\newline
4
\newline
\begin_inset Formula \( \sum \)
\end_inset
\newline
W
\newline
2
\newline
2
\newline
2
\newline
2
\newline
\series bold
\shape italic
6
\series default
\shape default
\newline
\series bold
\shape italic
6
\series default
\shape default
\newline
6
\newline
6
\newline
6
\newline
6
\newline
6
\newline
6
\newline
\series bold
\emph on
6
\series default
\emph default
\newline
\series bold
\emph on
6
\series default
\emph default
\newline
6
\newline
6
\newline
6
\newline
6
\newline
6
\newline
6
\newline
\newline
S
\newline
-
\newline
4
\newline
4
\newline
4
\newline
4
\newline
4
\newline
\series bold
\emph on
1
\series default
\emph default
\newline
\series bold
\emph on
1
\series default
\emph default
\newline
1
\newline
\series bold
\emph on
2
\series default
\emph default
\newline
\series bold
\emph on
2
\series default
\emph default
\newline
2
\newline
2
\newline
\series bold
\emph on
3
\series default
\emph default
\newline
\series bold
\emph on
3
\series default
\emph default
\newline
\series bold
\emph on
3
\series default
\emph default
\newline
\series bold
\emph on
3
\series default
\emph default
\newline
3
\newline
\series bold
\emph on
3
\series default
\emph default
\newline
\series bold
\emph on
3
\series default
\emph default
\newline
\newline
E
\newline
-
\newline
-
\newline
1
\newline
\series bold
\emph on
1
\series default
\emph default
\newline
1
\newline
\series bold
\shape italic
3
\series default
\shape default
\newline
\series bold
\emph on
3
\series default
\emph default
\newline
3
\newline
\series bold
\emph on
5
\series default
\emph default
\newline
\series bold
\emph on
5
\series default
\emph default
\newline
5
\newline
\series bold
\emph on
5
\series default
\emph default
\newline
\series bold
\emph on
5
\series default
\emph default
\newline
5
\newline
5
\newline
5
\newline
\series bold
\emph on
5
\series default
\emph default
\newline
\series bold
\emph on
5
\series default
\emph default
\newline
5
\newline
\series bold
\emph on
4
\series default
\emph default
\newline
\newline
T
\newline
-
\newline
-
\newline
-
\newline
\series bold
\emph on
5
\series default
\emph default
\newline
\series bold
\shape italic
5
\series default
\shape default
\newline
5
\newline
5
\newline
\series bold
\emph on
4
\series default
\emph default
\newline
\series bold
\emph on
4
\series default
\emph default
\newline
4
\newline
\series bold
\emph on
4
\series default
\emph default
\newline
\series bold
\emph on
4
\series default
\emph default
\newline
4
\newline
4
\newline
\series bold
\emph on
1
\series default
\emph default
\newline
\series bold
\emph on
1
\series default
\emph default
\newline
1
\newline
\series bold
\emph on
2
\series default
\emph default
\newline
\series bold
\emph on
2
\series default
\emph default
\newline
3
\newline
\newline
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
*
\newline
\newline
\newline
\newline
*
\newline
*
\newline
\newline
\newline
*
\newline
\newline
*
\newline
14
\layout Enumerate
Seitengroesse =
\begin_inset Formula \( 8KB\rightarrow 2^{13}Bytes \)
\end_inset
\layout Enumerate
Sei
\begin_inset Formula \( p_{cpu}^{i} \)
\end_inset
der Wert von
\begin_inset Formula \( p_{cpu} \)
\end_inset
nach
\begin_inset Formula \( i \)
\end_inset
Sekunden und
\begin_inset Formula \( t_{i} \)
\end_inset
die Anzahl der time ticks, die in der
\begin_inset Formula \( i \)
\end_inset
-ten Sekunden auf den untersuchten Prozess entfallen.
Dann gilt:
\begin_deeper
\layout Standard
\begin_inset Formula
\[
p_{cpu}^{i}:=\alpha \cdot t_{1}+0=\alpha \cdot t_{1}\]
\end_inset
\end_deeper
\layout Enumerate
mit
\begin_deeper
\layout Standard
\begin_inset Formula
\[
\alpha =\frac{2load}{2load+1}\]
\end_inset
\end_deeper
\layout Standard
und
\layout Enumerate
Es gibt (mindestens) drei Probleme, unter denen die Philosophen leiden können:
\begin_deeper
\begin_deeper
\layout Standard
Stichwort: Kritischer Abschnitt - Zwei Philosophen versuchen gleichzeitig,
auf eine Gabel zuzugreifen.
Wer bekommt sie?
\layout Standard
Stichwort: Deadlock - Die Philosophen können sich gegenseitig von der
Ressourcen\SpecialChar \-
nutzung aus\SpecialChar \-
schliessen, indem z.B.
jeder von ihnen sofort die linke Gabel ergreift.
Keiner der Philosophen kann dann noch an die rechte Gabel gelangen.
\layout Standard
Stichwort: Starvation - Einzelne Philosophen können im wahrsten Sinne des
Wortes verhungern, weil andere Philosophen sich ihnen gegenüber unfair
verhalten und sie nicht zum Zuge kommen lassen (die bösen Nachbarn essen
immer abwechselnd).
\end_deeper
\layout Enumerate
Idee: Einführung einer zentralen Instanz, die die Vergabe der Gabeln regelt.
\begin_deeper
\layout Verse
\latex latex
\backslash
begin{verbatim}
\layout Verse
\latex latex
void philosopher(
\protected_separator
int n
\protected_separator
)
\newline
{
\newline
\protected_separator
\protected_separator
while
\protected_separator
(
\protected_separator
true
\protected_separator
)
\newline
\protected_separator
\protected_separator
{
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
think();
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
send(
\protected_separator
manager,
\protected_separator
\latex default
\begin_inset Quotes eld
\end_inset
\latex latex
#n
\protected_separator
is
\protected_separator
hungry
\latex default
\begin_inset Quotes erd
\end_inset
\latex latex
\protected_separator
);
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
receive(
\protected_separator
manager,
\protected_separator
\latex default
\begin_inset Quotes eld
\end_inset
\latex latex
proceed
\latex default
\begin_inset Quotes erd
\end_inset
\latex latex
\protected_separator
);
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
eat();
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
send( manager,
\latex default
\begin_inset Quotes eld
\end_inset
\latex latex
#n
\protected_separator
is
\protected_separator
full
\latex default
\begin_inset Quotes erd
\end_inset
\latex latex
\protected_separator
);
\newline
\protected_separator
\protected_separator
}
\newline
}
\newline
\newline
void
\protected_separator
manager(
\protected_separator
void
\protected_separator
)
\newline
{
\newline
\protected_separator
\protected_separator
bool
\protected_separator
\protected_separator
\protected_separator
hungry[ 5 ], fork[ 5 ];
\newline
\newline
\protected_separator
\protected_separator
while( true )
\newline
\protected_separator
\protected_separator
{
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
receive( msg );
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
if ( msg ==
\latex default
\begin_inset Quotes eld
\end_inset
\latex latex
#n is hungry
\latex default
\begin_inset Quotes erd
\end_inset
\latex latex
)
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
{
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
hungry[ n ] = true;
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
test( n );
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
}
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
else
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
if ( msg ==
\latex default
\begin_inset Quotes eld
\end_inset
\latex latex
#n is full
\latex default
\begin_inset Quotes erd
\end_inset
\latex latex
);
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
{
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
fork[ n ] = true;
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
fork[ ( n + 4 ) % 5 ] = true;
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
test(
\protected_separator
( n + 4 ) % 5 );
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
test(
\protected_separator
( n + 1 ) % 5 );
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
\protected_separator
}
\newline
\protected_separator
\protected_separator
}
\newline
}
\newline
\newline
void test( int n )
\newline
{
\newline
\protected_separator
\protected_separator
if
\protected_separator
(
\protected_separator
hungry[ n ] && fork[
\protected_separator
n ] && fork[ ( n + 4 ) % 5 ] )
\newline
\protected_separator
\protected_separator
{
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
hungry[ n ] = false;
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
fork[ n ] = false;
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
fork[ ( n + 4 ) % 5 ] = false;
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
send( n,
\latex default
\begin_inset Quotes eld
\end_inset
\latex latex
proceed
\latex default
\begin_inset Quotes erd
\end_inset
\latex latex
);
\newline
\protected_separator
\protected_separator
}
\newline
}
\latex default
\layout Verse
\latex latex
\backslash
end{verbatim}
\end_deeper
\layout Enumerate
Wenn die Philosophen automatisch eine aufgenommene Gabel wieder zurücklegen,
falls ihre zweite Gabel auf der anderen Seite des Tellers bereits vergeben
ist, so kann es zu einem sogenannten Livelock kommen, d.h.
alle Philosophen sind ständig mit dem Aufnehmen und Ablegen der Gabeln
beschäftigt, ohne jemals zum Essen zu kommen.
\end_deeper
\layout Enumerate
\pagebreak_top
Lösung des Readers-Writers-Problems mit Hilfe eines Monitors
\begin_deeper
\layout Verse
\latex latex
\backslash
begin{verbatim}
\layout Verse
\latex latex
MONITOR ReadersWriters;
\newline
\newline
VAR
\newline
\protected_separator
\protected_separator
count_readers, count_writers : CARDINAL;
\newline
\protected_separator
\protected_separator
no_readers, no_writers : CONDITION;
\newline
\newline
PROCEDURE start_reading;
\newline
BEGIN
\newline
\protected_separator
\protected_separator
IF count_writers > 0 THEN
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
WAIT( no_writers )
\newline
\protected_separator
\protected_separator
END;
\newline
\protected_separator
\protected_separator
count_readers := count_readers + 1;
\newline
\protected_separator
\protected_separator
SIGNAL( no_writers );
\newline
END start_reading;
\newline
\newline
PROCEDURE stop_reading;
\newline
BEGIN
\newline
\protected_separator
\protected_separator
count_readers := count_readers - 1;
\newline
\protected_separator
\protected_separator
IF count_readers = 0 AND count_writers > 0 THEN
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
SIGNAL( no_readers )
\newline
\protected_separator
\protected_separator
END;
\newline
END stop_reading;
\newline
\newline
PROCEDURE start_writing;
\newline
BEGIN
\newline
\protected_separator
\protected_separator
count_writers := count_writers + 1;
\newline
\protected_separator
\protected_separator
IF count_readers > 0 OR count_writers > 1 THEN
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
WAIT( no_readers )
\newline
\protected_separator
\protected_separator
END;
\newline
END start_writing;
\newline
\newline
PROCEDURE stop_writing;
\newline
BEGIN
\newline
\protected_separator
\protected_separator
count_writers := count_writers - 1;
\newline
\protected_separator
\protected_separator
IF count_writers = 0 THEN
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
SIGNAL( no_writers );
\newline
\protected_separator
\protected_separator
ELSE
\newline
\protected_separator
\protected_separator
\protected_separator
\protected_separator
SIGNAL( no_readers )
\newline
\protected_separator
\protected_separator
END
\newline
END stop_writing;
\newline
\newline
BEGIN
\newline
\protected_separator
\protected_separator
count_readers := 0;
\newline
\protected_separator
\protected_separator
count_writers := 0;
\newline
END ReadersWriters.
\layout Verse
\latex latex
\backslash
end{verbatim}
\the_end
S/MIME Cryptographic Signature