рд╕реА / рд╕реА ++ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдореЗрдореЛрд░реА рд▓реАрдХ - рдХрдИ рдмрдЧреЛрдВ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕

рдХрдИ рдореЗрдореЛрд░реА рд▓реАрдХ рдореБрджреНрджреЛрдВ рдХреА рдХрд╣рд╛рдирд┐рдпрд╛рдВред рдЗрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд╕реНрдпрд╛рдПрдВ рдХрд╛рдлреА рддреБрдЪреНрдЫ рд╣реИрдВ, рдкреБрди: рдкреЗрд╢ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдХрдИ рдмрд╛рд░, рд╕рдорд╕реНрдпрд╛рдПрдВ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдПрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдпрд╛ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ...



рдХреЛрдб рд▓реЙрд╕ рдореЗрдореЛрд░реА


рдХреНрдпреВрдП рдореЗрдВ рдПрдХ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЙрддреНрдкрд╛рдж рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд▓реЛрдб рдХреЗ рддрд╣рдд рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕реНрдерд╛рдпреА рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛ред рдкреНрд▓реЗрдмреИрдХ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рд╡рд╛рд▓рдЧреНрд░рд┐рдВрдб рдХреЗ рддрд╣рдд рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╢реБрд░реБрдЖрддреА рджреМрд░ рдореЗрдВ рдХрд┐рд╕реА рднреА рд▓реАрдХ рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдирд╣реАрдВ рд╣реБрдЖред



рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рдж, рд╡рд┐рдХрд▓реНрдк - рд▓реАрдХ-рдЪреЗрдХ = рдкреВрд░реНрдг рдЪрд╛рд▓реВ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ Valgrind рдиреЗ рд▓реАрдХ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрдерд┐рд░ рдЪрд░ рдХреА рдЕрдиреБрдорд╛рдирд┐рдд рд▓реАрдХ рдХреЗ рдмреАрдЪ, рдЕрдХреНрд╕рд░ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд░рд┐рд╕рд╛рд╡ рдЬреИрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛ред рдЖрдорддреМрд░ рдкрд░, рдХрдИ рд╣рдЬрд╛рд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди, рдореЙрд▓реЛрдХ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рдВрдЯрд┐рдд рдЦреЛрдИ рд╣реБрдИ рдореЗрдореЛрд░реА рдмреНрд▓реЙрдХреЛрдВ рдХреА рд╕рдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, 10,000 рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд░рд┐рд╕рд╛рд╡ рдиреНрдпреВрдирддрдо рдерд╛ред



рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдХреЗ рдвреЗрд░ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдорд╛рдорд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдЙрдореНрдореАрджрд╡рд╛рд░ рдерд╛ рдЬреЛ рдХрдИ рджрд░реНрдЬрди рдЦреЛ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдерд╛ - рд╡рд╣ рд╕рдВрдЦреНрдпрд╛ рдЬреЛ 10,000 рдЕрдиреБрд░реЛрдзреЛрдВ рд╕реЗ рдЬреБрдбрд╝реА рдирд╣реАрдВ рдереАред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдерд╛ - рдПрд╕рдЯреАрдПрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд░реНрдЧ рдореЗрдВ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдкреВрд▓ рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, 10,000 рдЦреЛрдП рд╣реБрдП рдореЗрдореЛрд░реА рдмреНрд▓реЙрдХреНрд╕ рдХреЗ рдмрдЬрд╛рдп, Valgrind рдиреЗ 40+ рдХреА рд╕реВрдЪрдирд╛ рджреАред рдХреЙрд▓ рд╕реНрдЯреИрдХ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рджреЗрдЦрд╛ рдЧрдпрд╛:



==15882== 76,400 bytes in 8 blocks are definitely lost in loss record 2 of 3

==15882== at 0x401B007: operator new(unsigned int) (vg_replace_malloc.c:214)

==15882== by 0x40A40F0: std::__default_alloc_template<true, 0>::_S_chunk_alloc(unsigned int, int&) (in /usr/lib/libstdc++.so.5.0.3)

==15882== by 0x40A3FFC: std::__default_alloc_template<true, 0>::_S_refill(unsigned int) (in /usr/lib/libstdc++.so.5.0.3)

==15882== by 0x40A3B6B: std::__default_alloc_template<true, 0>::allocate(unsigned int) (in /usr/lib/libstdc++.so.5.0.3)

==15882== by 0x40A9B67: std::string::_Rep::_S_create(unsigned int, std::allocator<char> const&) (in /usr/lib/libstdc++.so.5.0.3)

==15882== by 0x40A9C98: std::string::_Rep::_M_clone(std::allocator<char> const&, unsigned int) (in /usr/lib/libstdc++.so.5.0.3)

==15882== by 0x40A7A05: std::string::reserve(unsigned int) (in /usr/lib/libstdc++.so.5.0.3)

==15882== by 0x8049826: std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char,

std::char_traits<char>, std::allocator<char> >(char const*, std::basic_string<char, std::char_traits<char>,

std::allocator<char> > const&) (basic_string.tcc:619)

==15882== by 0x804956A: A::A(A const&) (class_a.cpp:20)

==15882== by 0x80491BC: foo(int) (test.cpp:23)

==15882== by 0x80492EA: main (test.cpp:32)








рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдХрд╛ рд╕реНрд░реЛрдд рдорд┐рд▓ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреЛрдб рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рд░реНрджреЛрд╖ рд▓рдЧ рд░рд╣рд╛ рдерд╛ - рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдЬреЛ рдЙрд╕ рдкрд░ рдкрд╛рд░рд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рд╕рд╛рде рд╣реИ:



doSomething( condition ? Object( params ) : getObject() );







рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдереЗ рдХрд┐ рдореЗрдореЛрд░реА рдЗрд╕ рд▓рд╛рдЗрди рдореЗрдВ рдЦреЛ рдЧрдИ рдереА, рдФрд░ рдЗрд╕ рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреЛ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рд╕рдм рдХреБрдЫ рдЬрдЧрд╣ рдореЗрдВ рд▓рдЧ рд░рд╣рд╛ рдерд╛ - "basic_string :: рд▓рдВрдмрд╛рдИ ()", рд╣рд╛рд▓рдд рдХреА рдПрдХ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓, "рдкреИрд░реЗрдВрдЯ :: getB ()" рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдФрд░ рджреВрд╕рд░реА рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдкреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░, рдлрд╝рдВрдХреНрд╢рди "A ::" рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ред рдмрдирд╛рдПрдБ ", рдЕрд╕реНрдерд╛рдпреА рд╡рд╕реНрддреБрдУрдВ рдХреА рд░рд┐рд╣рд╛рдИ - рд╡рд░реНрдЧ рдХреА рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЗ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ - рд╕реНрдЯреИрдХ рдкрд░ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрджрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореБрдХреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛!



 110: return A::create(b1, b2, s.length() > 0 ? B(s) : getB()); 13d4: 83 ec 0c sub $0xc,%esp 13d7: 8d 45 d8 lea 0xffffffd8(%ebp),%eax 13da: 50 push %eax 13db: e8 fc ff ff ff call std::basic_string<wchar_t>::length() const <<========= 13e0: 83 c4 10 add $0x10,%esp 13e3: 85 c0 test %eax,%eax 13e5: 74 18 je 13ff <A::create+0x341> 13e7: 83 ec 08 sub $0x8,%esp 13ea: 8d 45 d8 lea 0xffffffd8(%ebp),%eax 13ed: 50 push %eax 13ee: 8d 85 f8 fe ff ff lea 0xfffffef8(%ebp),%eax 13f4: 50 push %eax 13f5: e8 fc ff ff ff call B::B( std::basic_string<wchar_t> const & ) <<========= 13fa: 83 c4 10 add $0x10,%esp 13fd: eb 21 jmp 1420 <A::create+0x362> 13ff: 83 ec 08 sub $0x8,%esp 1402: 83 ec 04 sub $0x4,%esp 1405: ff 75 0c pushl 0xc(%ebp) 1408: e8 fc ff ff ff call Parent::getB() <<========= 140d: 83 c4 08 add $0x8,%esp 1410: 50 push %eax 1411: 8d 85 f8 fe ff ff lea 0xfffffef8(%ebp),%eax 1417: 50 push %eax 1418: e8 fc ff ff ff call B::B( B const & ) <<========= 141d: 83 c4 10 add $0x10,%esp 1420: 83 ec 0c sub $0xc,%esp 1423: 8d 85 f8 fe ff ff lea 0xfffffef8(%ebp),%eax 1429: 50 push %eax 142a: 0f b6 45 f6 movzbl 0xfffffff6(%ebp),%eax 142e: 50 push %eax 142f: 0f b6 45 f7 movzbl 0xfffffff7(%ebp),%eax 1433: 50 push %eax 1434: ff 75 0c pushl 0xc(%ebp) 1437: ff 75 08 pushl 0x8(%ebp) 143a: e8 fc ff ff ff call A::create(bool, bool, B) <<========= 143f: 83 c4 1c add $0x1c,%esp 1442: 83 ec 0c sub $0xc,%esp 1445: 8d 85 68 ff ff ff lea 0xffffff68(%ebp),%eax 144b: 50 push %eax 144c: e8 fc ff ff ff call BS<100, char>::~BS() 1451: 83 c4 10 add $0x10,%esp 1454: 83 ec 0c sub $0xc,%esp 1457: 8d 45 d8 lea 0xffffffd8(%ebp),%eax 145a: 50 push %eax 145b: e8 fc ff ff ff call std::basic_string<wchar_t>::~basic_string() 1460: 83 c4 10 add $0x10,%esp 1463: eb 55 jmp 14ba <A::create+0x3fc> 1465: 89 85 f0 fe ff ff mov %eax,0xfffffef0(%ebp) 146b: 8b b5 f0 fe ff ff mov 0xfffffef0(%ebp),%esi 1471: 83 ec 0c sub $0xc,%esp 1474: 8d 85 68 ff ff ff lea 0xffffff68(%ebp),%eax 147a: 50 push %eax 147b: e8 fc ff ff ff call BS<100, char>::~BS() 1480: 83 c4 10 add $0x10,%esp 1483: 89 b5 f0 fe ff ff mov %esi,0xfffffef0(%ebp) 1489: eb 06 jmp 1491 <A::create+0x3d3> 148b: 89 85 f0 fe ff ff mov %eax,0xfffffef0(%ebp) 1491: 8b b5 f0 fe ff ff mov 0xfffffef0(%ebp),%esi 1497: 83 ec 0c sub $0xc,%esp 149a: 8d 45 d8 lea 0xffffffd8(%ebp),%eax 149d: 50 push %eax 149e: e8 fc ff ff ff call std::basic_string<wchar_t>::~basic_string() 14a3: 83 c4 10 add $0x10,%esp 14a6: 89 b5 f0 fe ff ff mov %esi,0xfffffef0(%ebp) 14ac: 83 ec 0c sub $0xc,%esp 14af: ff b5 f0 fe ff ff pushl 0xfffffef0(%ebp) 14b5: e8 fc ff ff ff call _Unwind_Resume
      
      







рдХреЛрдб рдХреЛ рдбрд┐рд╕реНрдЯреНрд░реЙрдХреНрдЯрд░ рдХреЙрд▓ рдХрднреА рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХрд░ рджреА, рдФрд░ рд▓рдЧрднрдЧ рддреБрд░рдВрдд " рдЬреАрд╕реАрд╕реА 3.2 рдмрдЧ 9946 - рдСрдмреНрдЬреЗрдХреНрдЯ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛, рд╕рдВрднрд╡рддрдГ рдПрдХ рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ "ред



рд╕рдорд╕реНрдпрд╛ "?:" рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереА, рдФрд░ рд╕рдВрдХрд▓рдХ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдХреЗ рдпрд╛ "?:" рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдЕрдЧрд░ () рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



// ,

const Object & getObject();



//

void doSomething( Object obj );



// , .

// ,

// .

doSomething( condition ? Object( params ) : getObject() );








рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ (рд╡рд░реНрдЧ рдП рдХреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдФрд░ рдореБрдХреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛):



main() start

A::A( 'on stack' )

B::B()

A::A( 'static instance' )

A::A( 'copy of static instance' )

B::boo()

B::~B()

A::~A( 'on stack' )

main() end

A::~A( 'static instance' )

Class A created 3 times and destroyed 2 times

Class B created 1 times and destroyed 1 times








рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рддрдм рд╣реБрдИ рдЬрдм gcc 3.2.3 рдореЗрдВ 32-рдмрд┐рдЯ рдХреЛрдб рдЬрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ 64-рдмрд┐рдЯ рдХреЛрдб рдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ рд╣реБрдЖред



рдореИрдВ рдореИрдВ рдирд╣реАрдВ рд╣реВрдВ, рдФрд░ рдореЗрд░реА рд╕реНрдореГрддрд┐ рдореЗрд░реА рдирд╣реАрдВ рд╣реИ


рдПрдХ рдмрд╛рд░ рдореИрдВрдиреЗ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╕рдорд░реНрдерди рдФрд░ рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ред рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рд▓рд┐рдирдХреНрд╕ рд╕рд╣рд┐рдд рдПрдХ рджрд░реНрдЬрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд▓рд┐рдирдХреНрд╕ рдХреЗ рдиреНрдпреВрдирддрдо рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЕрдиреБрд░реВрдк рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ gcc 3.3.x, рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╛рдЗрд▓реЗрдВ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдереАрдВред



рдПрдХ рдмрд┐рдВрджреБ рдкрд░, рд╣рдорд╛рд░реЗ рдХреНрдпреВрдП рд╡рд┐рднрд╛рдЧ рдиреЗ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ (рдПрдХ рд▓рдВрдмреЗ, рдХрдИ рджрд┐рдиреЛрдВ рдХреЗ рджреМрд░рд╛рди, рднрд╛рд░реА рднрд╛рд░ рдХреЗ рддрд╣рдд рдкрд░реАрдХреНрд╖рдг) рд╕реНрдореГрддрд┐ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рджреБрд░реНрдШрдЯрдирд╛ - рдкреНрд░рдХреНрд░рд┐рдпрд╛ 3 рдЬреАрдмреА рдореЗрдореЛрд░реА рдЦрд╛рддреА рд╣реИ рдФрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХреНрд░реИрд╢ рд╣реЛрддреА рд╣реИ, рдЙрд╕реА рдЖрдХрд╛рд░ рдХрд╛ рдПрдХ рдХреЛрд░ рдбрдВрдк рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╡рд┐рд╕реНрдлреЛрдЯрдХ рд╡реГрджреНрдзрд┐ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рджреБрдЦрдж рдЕрдВрдд рд╕реЗ 10-15 рдорд┐рдирдЯ рдкрд╣рд▓реЗ рд╣реБрдИ, рдФрд░ рдЙрд╕ рд╕рдордп рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб рд▓рдЧрднрдЧ 12% рдерд╛ (рд╕рд░реНрд╡рд░ рдкрд░ 4 рджреЛрд╣рд░реЗ рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдереЗ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рдПрдХ рдзрд╛рдЧрд╛ рдХрддрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП 12.5%)ред



рдбреНрд░реЙрдк рдХрд┐рдП рдЧрдП рдзрд╛рдЧреЗ рдХреЗ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдиреЗ рдХреЙрдкреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреБрдЪреНрдЫ рдХреЛрдб рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛, рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдЕрд╕рд╛рдзрд╛рд░рдг рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рдерд╛ред



 (gdb) where #0 0xffffe410 in __kernel_vsyscall () #1 0xb7dbd8d0 in raise () from /lib/libc.so.6 #2 0xb7dbeff3 in abort () from /lib/libc.so.6 #3 0xb7f86da5 in dlopen () from /usr/lib/libstdc++.so.5 #4 0xb7f86de2 in std::terminate () from /usr/lib/libstdc++.so.5 #5 0xb7f85e89 in __cxa_allocate_exception () from /usr/lib/libstdc++.so.5 #6 0xb78f7f07 in Uuid::Uuid () from .../lib32/libourlibrary.so #7 0xb782409d in ...
      
      







рд╕реНрдореГрддрд┐ рдбреАрдмрдЧрд░ рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдбреАрдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдЕрд╕рдлрд▓ рд░рд╣реЗ - рд╕рдорд╕реНрдпрд╛ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИред рд╣рд╛рдВ, рдФрд░ рдкреНрд░рдЬрдирди рд╕реНрд╡рдпрдВ рдорд╣рдВрдЧрд╛ рдерд╛ - рдЖрдорддреМрд░ рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдЙрдардиреЗ рд╕реЗ рдкрд╣рд▓реЗ 2-4 рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рдХреЗ рддрд╣рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ - рдЗрд╕рд╕реЗ рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рджреЗрд░реА рд╣реБрдИ рдЬреЛ рд▓реЛрдб рдХреЗ рддрд╣рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред



рдЗрд╕реА рддрд░рд╣ рдХреЗ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдХреА рдЦреЛрдЬ рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдорд┐рд▓рд╛, рдФрд░ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЧрддрд┐рд░реЛрдз рд╣реЛ рдЧрдпрд╛ред рдХрд┐рд╕реА рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдвреВрдВрдврдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред



рд╕реА ++ рдХреЗ рд▓рд┐рдП рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЬреЛ рдореИрдВ рднрд░ рдореЗрдВ рдЖрдпрд╛ рдерд╛, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдбрд┐рдмрдЧ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрдХреНрд╖рд╛ рдХреЗ рдПрдХ рдирдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓реЙрдХ рдХреЛ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рд╡рд╛рд▓реА рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд╡рд┐рдзрд┐ рдиреЗ рдХреЛрд░ рдбрдВрдк-рд╡рд╛рдИ рджреНрд╡рд╛рд░рд╛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рджрд┐рдпрд╛ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдкрд╣рд▓реЗ рдЪрд▓рд╛рдХрд░ рдФрд░ рдлрд┐рд░ рд╕реЙрд░реНрдЯ рдХреЗ рд╕рд╛рде рдХреЛрд░ рдбрдВрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред



рдЙрддреНрд╕реБрдХрддрд╛ рд╕реЗ, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "++ CCUNG0o" рдлреЙрд░реНрдо рдХреА 32,123,751 рд▓рд╛рдЗрдиреЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ - рдХреЗрд╡рд▓ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЖрдХрд╛рд░ рдореЗрдВ 3 рдЬреАрдмреА рдХреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рдЧрднрдЧ 275 рдПрдордмреА рд╡реНрдпрд╛рдкреНрдд рд╣реИред рдЬрдм рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдРрд╕реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдиреЗ 96-рдмрд╛рдЗрдЯ рдмреНрд▓реЙрдХ (96b * 32,000,000 = 3Gb>) рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛!



рдмреНрд▓реЙрдХ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдЙрд▓реНрдЯреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ "++ CCUNG0o" рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрд▓рдЯрд╛ рд╣реИ), рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рдЪрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдореЗрдВ рднрд┐рдиреНрдирддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдПрдХ рд▓рд┐рдВрдХ рдХреА рдЧрдИ рд╕реВрдЪреАред



0x248b818: 0x00 0x2b 0x2b 0x43 0x43 0x55 0x4e 0x47 <<== ┬л++CCUNG0o┬╗

0x248b820: 0x30 0x6f 0xf8 0xb7 0x00 0x00 0x00 0x00

0x248b828: 0x6c 0xa8 0x78 0xb7 0x00 0x00 0x00 0x00

0x248b830: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

0x248b838: 0xa8 0x0e 0xd3 0xb7 0x3c 0xa2 0xfa 0xb7

0x248b840: 0xe8 0xae 0x82 0xb7 0x65 0x00 0x00 0x00

0x248b848: 0xc0 0x0e 0xd3 0xb7 0x38 0x9c 0xc8 0xb7

0x248b850: 0xf4 0x9b 0x04 0x08 0xe4 0x9c 0x04 0x08

0x248b858: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

0x248b860: 0x03 0x00 0x00 0x00 0xbe 0x80 0x79 0xb7

0x248b868: 0x58 0x80 0x79 0xb7 0x54 0xa9 0x78 0xb7

0x248b870: 0x98 0xb8 0x48 0x02 0x00 0x00 0x00 0x00



0x248b878: 0x00 0x2b 0x2b 0x43 0x43 0x55 0x4e 0x47 <<== ┬л++CCUNG0o┬╗

0x248b880: 0x30 0x6f 0xf8 0xb7 0x00 0x00 0x00 0x00

0x248b888: 0x6c 0xa8 0x78 0xb7 0x00 0x00 0x00 0x00

0x248b890: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

0x248b898: 0xa8 0x0e 0xd3 0xb7 0x3c 0xa2 0xfa 0xb7

0x248b8a0: 0xff 0xff 0xff 0xff 0x65 0x00 0x00 0x00

0x248b8a8: 0xc0 0x0e 0xd3 0xb7 0x38 0x9c 0xc8 0xb7

0x248b8b0: 0xf4 0x9b 0x04 0x08 0xe4 0x9c 0x04 0x08

0x248b8b8: 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

0x248b8c0: 0x03 0x00 0x00 0x00 0xbe 0x80 0x79 0xb7

0x248b8c8: 0x58 0x80 0x79 0xb7 0x54 0xa9 0x78 0xb7

0x248b8d0: 0xf8 0xb8 0x48 0x02 0x00 0x00 0x00 0x00








рдкрд╣рд▓реА рдмрд╛рд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреА рдЦреЛрдЬ рд╕реЗ рдХреЛрдИ рдЙрдкрдпреЛрдЧреА рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдПрдХ рд▓рд┐рдВрдХ http://www.opensource.apple.com/ (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрдм рдФрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛) рдХреЛ рдирд┐рдореНрди рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛:



 // This is the exception class we report -- "GNUCC++\0". const _Unwind_Exception_Class __gxx_exception_class = ((((((((_Unwind_Exception_Class) 'G' << 8 | (_Unwind_Exception_Class) 'N') << 8 | (_Unwind_Exception_Class) 'U') << 8 | (_Unwind_Exception_Class) 'C') << 8 | (_Unwind_Exception_Class) 'C') << 8 | (_Unwind_Exception_Class) '+') << 8 | (_Unwind_Exception_Class) '+') << 8 | (_Unwind_Exception_Class) '\0');
      
      







рдлрд┐рд░ рдореИрдВ рдЕрдиреНрдп рдереНрд░реЗрдбреНрд╕ рдХреЗ рдХреЙрд▓ рд╕реНрдЯреИрдХ рдкрд░ рд▓реМрдЯ рдЖрдпрд╛, рдФрд░ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдВрджрд┐рдЧреНрдз рдзрд╛рдЧрд╛ рдкрд╛рдпрд╛ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрд┐рд░рд╛рд╡рдЯ рдХреЗ рд╕рдордп рдПрдХ рд▓реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ - рдФрд░ рдпрд╣ рд▓реВрдк рднреА рдЕрдкрд╡рд╛рдж рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ:



 (gdb) thread 20 [Switching to thread 20 (process 27635)]#0 0xb7e87921 in dl_iterate_phdr () from /lib/libc.so.6 (gdb) where #0 0xb7e87921 in dl_iterate_phdr () from /lib/libc.so.6 #1 0x0804e837 in _Unwind_Find_FDE (pc=0xb782409c, bases=0xb70209b4) at ../../gcc/unwind-dw2-fde-glibc.c:283 #2 0x0804c950 in uw_frame_state_for (context=0xb7020960, fs=0xb7020860) at ../../gcc/unwind-dw2.c:903 #3 0x0804cfbf in _Unwind_RaiseException_Phase2 (exc=0xbfde3f38, context=0xb7020960) at ../../gcc/unwind.inc:43 #4 0x0804d397 in _Unwind_Resume (exc=0xbfde3f38) at ../../gcc/unwind.inc:220 #5 0xb78f82b0 in Uuid::Uuid () from /home/'work/lib32/libourlibrary.so #6 0xb782409d in ...
      
      







рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдЬрд╣рд╛рдВ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдирдП рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдХреЗ рдЗрд╕ рдЦрдВрдб рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдиреЗ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА - рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдЬрд┐рд╕реЗ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреЗ рдирдП рдСрдкрд░реЗрдЯрд░ рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдФрд░ рдПрдХ рд╡рд┐рд╕реНрдлреЛрдЯрдХ рд╕реНрдореГрддрд┐ рд░рд┐рд╕рд╛рд╡ рд╣реЛрддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рд╕рд░рд▓ рдерд╛ - рдХреЛрдб рдХреЗ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдПрдХ рдЕрд╕рд╛рдзрд╛рд░рдг рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд╕рдВрджрд░реНрдн рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рдерд╛ - рдЫреЛрдЯреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрд╣ рднреА рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рдХ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдЬрд┐рд╕рдХрд╛ рд╣рдордиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рдд gcc 3.4 рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрд╣реБрдд рдкреИрд╕рд╛ рдЦрд░реНрдЪ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдЧреЗ рдХреА рдЬрд╛рдВрдЪ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛ рджреА рдЧрдИ рд╣реИред



рдХрд╛рдлреА рд▓реАрдХ рдирд╣реАрдВ рд╣реИ


рдПрдХ рдмрд╛рд░, рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рдж рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдиреЗ рдПрдХ рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬреЛ рдкрд╣рд▓реЗ рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред



рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЛрд▓рд╛рд░рд┐рд╕ рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЛрдб рдХреЗ рддрд╣рдд, рдФрд░ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ 10-100 рдПрдордмреА рдХреА рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдмрдврд╝рд╛, рдФрд░ рд╢рд╛рдпрдж рд╣реА рдХрднреА - рд╣рд░ 2-3 рджрд┐рдиреЛрдВ рдореЗрдВ, рдФрд░ рдХрднреА-рдХрднреА рджрд┐рди рдореЗрдВ 2-3 рдмрд╛рд░ред рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореЗрдореЛрд░реА 2+ рдЬреАрдмреА рддрдХ рдмрдврд╝ рдЧрдИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬрдм рд▓реЛрдб рд╢реВрдиреНрдп рддрдХ рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рднреА рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдореЗрдореЛрд░реА (RSS рдФрд░ VSS рдорд╛рди) рдХрднреА рдХрдо рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред



рд╕рд░реНрд╡рд░ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд┐рдмреНрдпреВрдореЗрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рд▓реЗрдХрд┐рди рдХреНрдпреВрдП рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ред рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдХреНрд░реЙрдкреНрдб рдХреЛрд░ рдбрдВрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ - рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рдХрд╛ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯред рд▓реЗрдХрд┐рди рдХреЛрд░ рдбрдВрдк рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдирд┐рдХрд▓рд╛ - рдХреЙрд▓ рд╕реНрдЯреИрдХ рдиреЗ рдЗрд╕рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рдмреВрдВрдж рджрд┐рдЦрд╛рдИред рдЙрд╕реА рд╕рдордп, рдЕрдзрд┐рдХрд╛рдВрд╢ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рд▓рдЧрднрдЧ рдкреВрд░реА рдХреЛрд░ рдбрдВрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рднрд░рд╛ рд╣реБрдЖ 4 рдХреЗрдмреА рдЦрд╛рд▓реА рдкрдиреНрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рд╕реНрдерд┐рддрд┐ рдЕрдЬреАрдм рдереА, рд▓реЗрдХрд┐рди рдзреАрд░реЗ-рдзреАрд░реЗ, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдХреЗ рдФрд░ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдХреЗ, рдШрдЯрдирд╛рдУрдВ рдХреА рддрд╕реНрд╡реАрд░ рдХреЛ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫрд┐рдд рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рднреЗрдЬрдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рд╕рдВрдпреЛрдЧ рд╕реЗ, рд▓рд╛рдкрддрд╛ рд╕рдВрджреЗрд╢реЛрдВ рдиреЗ рд▓реЗрдирджреЗрди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрдВрддрд░рд┐рдХ рдмрдлрд╝рд░реНрд╕ рдХреЛ рд╕рд╛рдл рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рддрджрдиреБрд╕рд╛рд░, рднрд╛рд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде, рдмрдлрд╝рд░ рдХрд┐рдП рдЧрдП рд╕рдВрджреЗрд╢ рдЬрдорд╛ рд╣реЛрдиреЗ рд▓рдЧреЗ, рдЬреЛ рдЬреЛрдбрд╝реЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рдереЗред рд╕рдВрдпреЛрдЧ рд╕реЗ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрджреЗрд╢ atypically рдмрдбрд╝реЗ рдереЗ (рд╕реИрдХрдбрд╝реЛрдВ рдмрд╛рдЗрдЯреНрд╕ рдХреЗ рдмрдЬрд╛рдп рджрд╕ рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ), рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдмрдбрд╝реА рдереА (рд╕рд╛рдорд╛рдиреНрдп 2-5 рдХреЗ рдмрдЬрд╛рдп рдХрдИ рджрд╕рд┐рдпреЛрдВ)ред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпреЗ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕реАрдорд╛рдУрдВ (рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдордХрд╛рдЬ рдХреЗ рдЕрдзреАрди) рдореЗрдВ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВред рдФрд░, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдиреЗ рдЖрдВрддрд░рд┐рдХ рдмрдлрд╝рд░реНрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ "рдЦреЛ" рд▓реЗрдирджреЗрди рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ - 10 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд░рд╛рдиреЗ рд╕рднреА рдЕрдкреВрд░реНрдг рд╕рдВрджреЗрд╢ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЧрдП рдереЗред рдФрд░ рдмрд╕ рдЗрд╕ рдХрд╛рдЙрдВрдЯрд░ рдиреЗ рд╣рдореЗрд╢рд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг 0 рджрд┐рдЦрд╛рдпрд╛ - рддрдВрддреНрд░ рд▓рдЧрднрдЧ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЕрд╕рд╛рдзрд╛рд░рдг рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓рдЧрднрдЧ рдХрднреА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реБрдЖ, рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╕рдлрд╛рдИ рд╕реНрд╡рдпрдВ рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рдереА, рд▓реЗрдХрд┐рди рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдХрд╛рд░рдг рдмрдбрд╝реЗ рдореЗрдореЛрд░реА рд▓реЛрдб рдФрд░ рдЧреИрд░-рдорд╛рдирдХ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдХреЗ рдХрд╛рд░рдг рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдХреБрд╢рд▓ рдирд╣реАрдВ рдереАред рдЖрдВрдХрдбрд╝реЛрдВ рдореЗрдВ рджреЛрд╖рдкреВрд░реНрдг рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рдХрд╛рд░рдг рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдирд┐рджрд╛рди рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдерд╛ред



рдлрд┐рд░, рд▓реЛрдб рдХрдо рд╣реЛрдиреЗ рдкрд░ рдореЗрдореЛрд░реА рд╡рд╛рдкрд╕ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЖрдИ? рдмрд╣реБрдд рд╕рд░рд▓ - рд╕реЛрд▓рд╛рд░рд┐рд╕ рдореЗрдВ рдорд╛рдирдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рдореИрдиреЗрдЬрд░ рдХреЗрд╡рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрддрд╛ рд╕реНрдерд╛рди рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдФрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдореБрдХреНрдд рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдкреГрд╖реНрдареЛрдВ рдХреЛ "рд╡реНрдпрд╕реНрдд" рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред



рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдПрдХрд▓ рдЪреЛрдЯрд┐рдпреЛрдВ рдиреЗ рд╕рдордп-рд╕рдордп рдкрд░ рдмрдбрд╝реЗ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд┐рдЫрд▓реЗ рдЕрдзрд┐рдХрддрдо рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдерд╛ред рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рдЕрдВрддрд┐рдо рдЕрдзрд┐рдХрддрдо рдкрд╛рд░ рд╣реЛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЕрдЧрд▓рд╛ рдХрджрдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдХрднреА рдХрдо рдирд╣реАрдВ рд╣реБрдЖред рдЪреЛрдЯреА рдХреЗ 10 рдорд┐рдирдЯ рдмрд╛рдж, рд╕рднреА рдореЗрдореЛрд░реА рдХреЛ рдореБрдХреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╛рд╣рд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рдерд╛, рдХреЗрд╡рд▓ рдореЗрдореЛрд░реА рдХреЗ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдореЗрдореЛрд░реА рд╢реВрдиреНрдп рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рдерд╛ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рд╕рдорд╕реНрдпрд╛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рдмрдлрд░ рдУрд╡рд░рдлреНрд▓реЛ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рдкрд╣рд▓реЗ рднреА рд╕рдорд╛рдзрд╛рди рд╕рд░рд▓ рдерд╛ - "рдкреБрд░рд╛рдиреЗ" рд▓реЗрди-рджреЗрди рдХреА рдЙрдореНрд░ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ 30 рд╕реЗрдХрдВрдб рддрдХ рд╕реАрдорд┐рдд рдереА, рдФрд░ рдпрд╣ рджрд┐рдП рдЧрдП рд▓реЛрдб рдкрд░ рдмрдлрд╝рд░реНрд╕ рдХреА рд╕рдордп рдкрд░ рд╕рдлрд╛рдИ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдерд╛, рдмрдбрд╝реЗ рдЕрдВрддрд░ рдХреЗ рд╕рд╛рдеред рд▓реЗрдХрд┐рди рдирд┐рджрд╛рди рдФрд░ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдореЗрдВ рдХрд╛рдлреА рд╕рдордп рд▓рдЧрд╛, рдореБрдЦреНрдпрддрдГ рд▓реЙрдЧ рдореЗрдВ рдЧрд▓рдд рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ рдХрд╛рд░рдгред



рдПрдХ рдЙрдкрд╕рдВрд╣рд╛рд░ рдХреЗ рдмрдЬрд╛рдп


рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреМрди рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЗ рдереЗ - рд▓рд┐рдЦреЛ!



All Articles