
рдпрд╣ рдЖрд▓реЗрдЦ рдХрд╣рд╛рдиреА рд╣реИ рдХрд┐ рдХреИрд╕реЗ рд╣рдордиреЗ рдПрдХ рдмрд╛рд░ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдЯреВрд▓ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдерд╛ рдЬреЛ рд╣рдо рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рд╕реБрдзрд╛рд░ рд╕рд░рд▓ рдерд╛ рдФрд░ рдЙрдкрдпреЛрдЧреА рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдХреБрдЫ рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдореЗрдВ рдорд┐рд▓рд╛ред рдмрд╛рдж рдореЗрдВ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╣рдордиреЗ рдмреЗрд╣рддрд░ рд╡рд┐рдЪрд╛рд░ рджрд┐рдпрд╛ред
SelfTester
рд╣рдо C, C ++, C # рдФрд░ Java рдХреЗ рд▓рд┐рдП PVS-Studio рд╕реНрдЯреИрдЯрд┐рдХ рдХреЛрдб рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╕рдВрд╡рд░реНрдзрди рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдЖрдВрддрд░рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕реЗрд▓реНрдлрд╕реНрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдордиреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд░реНрдерд┐рдд рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ SelfTester рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдпрд╛ред рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕ рд╕рдордп рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрд░рдорд╢рдГ C \ C ++, C # рдФрд░ Java рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ рддреАрди рдЖрдВрддрд░рд┐рдХ SelfTester рдЙрдкрдХрд░рдг рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЖрдкрдХреЛ SelfTester рдХреЗ рд╡рд┐рдВрдбреЛрдЬ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ C \ C ++ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХрд╣рддреЗ рд╣реИрдВред рдпрд╣ рдкрд░реАрдХреНрд╖рдХ рд╕рдорд╛рди рдЖрдВрддрд░рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдХрддрд╛рд░ рдореЗрдВ рдкрд╣рд▓рд╛ рдерд╛, рдпрд╣ рд╕рднреА рдХрд╛ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рдФрд░ рдЬрдЯрд┐рд▓ рд╣реИред
SelfTester рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╕рд░рд▓ рд╣реИ: рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ (рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ) рдХрд╛ рдПрдХ рдкреВрд▓ рд▓реЗрдВ рдФрд░ рдкреАрд╡реАрдПрд╕-рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВред рдирддреАрдЬрддрди, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд▓реЙрдЧ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд▓реЙрдЧ рдХреА рддреБрд▓рдирд╛ рдЙрд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ
рд╕рдВрджрд░реНрдн рд▓реЙрдЧ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рд▓реЙрдЧ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп, SelfTester рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЕрдиреБрдХреВрд▓ рддрд░реАрдХреЗ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реБрдП рд▓реЙрдЧ рдХрд╛
рд╕рд╛рд░рд╛рдВрд╢ рдмрдирд╛рддрд╛ рд╣реИред
рд╕рд╛рд░рд╛рдВрд╢ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдбреЗрд╡рд▓рдкрд░ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ, рдХрд╛рд░реНрдп рдХреА рдЧрддрд┐, рдЖрдВрддрд░рд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ, рдЖрджрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред рдпрд╣ рд╕рдм рдЬрд╛рдирдХрд╛рд░реА рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ: рдпрд╣ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд▓реЙрдЧ рдХреА рддреБрд▓рдирд╛ рдХреЗ рд╕рд╛рд░рд╛рдВрд╢ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдбреЗрд╡рд▓рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЛрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдПрдХ рдирдпрд╛ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдирд┐рдпрдо рдмрдирд╛рддреЗ рд╣реИрдВ) рдФрд░ рддреБрд░рдВрдд рдЕрдкрдиреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд╛рд╕ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╡рд╣ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ
рд╡рд░реНрддрдорд╛рди рдЪреЗрддрд╛рд╡рдиреА рд▓реЙрдЧ
рд╕рдВрджрд░реНрдн рдмрдирд╛рддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдХрд╛рдо рдЬрд╛рд░реА рд╣реИред
рддреЛ, рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХрд╛ рдХрд╛рдо рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ (рд╡реИрд╕реЗ, рд╕реА / рд╕реА ++ рдХреЗ рд▓рд┐рдП рдЙрдирдореЗрдВ рд╕реЗ 120 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИрдВ)ред рдкреВрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдХрд╛рдо рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2010 рд╕реЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2019 рддрдХ)ред
рдиреЛрдЯ: рдЖрдЧреЗ рдореИрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рдПрдХ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ
рд╕рдорд╛рдзрд╛рди рдФрд░
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░реВрдБрдЧрд╛ред
SelfTester рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
рдмрд╛рдИрдВ рдУрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рджрд╛рдИрдВ рдУрд░ - рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдХреЗ рдкрд░рд┐рдгрд╛рдоред
рдЧреНрд░реЗ рд▓реЗрдмрд▓ "рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ" рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдЪреБрдиреЗ рд╣реБрдП рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдпрд╣ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреБрдЫ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рдПрдХ рдкреВрд▓ рдореЗрдВ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЪреЗрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рднреА рдмрд╛рдж рдХреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкрд░ рд╣реИ - "smart_ptr_check.sln" (рд╕рднреА рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
рдПрдХ рд╣рд░рд╛ рд▓реЗрдмрд▓ "рдУрдХреЗ" рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рдпрдорд┐рдд рдЬрд╛рдВрдЪ рдиреЗ рд╕рдВрджрд░реНрдн рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рдорддрднреЗрджреЛрдВ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рд╣реИред рдПрдХ рд▓рд╛рд▓ рд▓реЗрдмрд▓ "рдбрд┐рдл" рдорддрднреЗрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрди рд▓реЗрдмрд▓реЛрдВ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдЖрд╡рд╢реНрдпрдХ рд▓реЗрдмрд▓ рдкрд░ рджреЛ рдмрд╛рд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЪреБрдирд╛ рдЧрдпрд╛ рд╕рдорд╛рдзрд╛рди рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЦреЛрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдВрдбреЛ рднреА рд╡рд╣рд╛рдВ рдЦреБрд▓реА рд╣реЛрдЧреАред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдирд┐рдпрдВрддреНрд░рдг рдмрдЯрди рдЖрдкрдХреЛ рдЪрдпрдирд┐рдд рдпрд╛ рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЪреБрдиреЗ рд╣реБрдП рд▓реЙрдЧ (рдпрд╛ рд╕рднреА рдПрдХ рдмрд╛рд░ рд╕рдВрджрд░реНрдн, рдЖрджрд┐) рдмрдирд╛рддреЗ рд╣реИрдВред
SelfTester рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╣рдореЗрд╢рд╛ HTML рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реЛрддреЗ рд╣реИрдВ (рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЕрдВрддрд░ рд╣реЛрддрд╛ рд╣реИ)
GUI рдХреЗ рдЕрд▓рд╛рд╡рд╛, SelfTester рдореЗрдВ рдирд╛рдЗрдЯ рдмрд┐рд▓реНрдб рд░рди рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЛрдб рднреА рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рдкреИрдЯрд░реНрди рджреЛрд╣рд░рд╛рдпрд╛ рдбреЗрд╡рд▓рдкрд░ рдХрд╛рд░реНрдпрджрд┐рд╡рд╕ рдХреЗ рджреМрд░рд╛рди рдПрдХ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЧрддрд┐ рд╣реИред
рдЧрддрд┐ рдХреНрдпреЛрдВ рдорд╛рдпрдиреЗ рд░рдЦрддреА рд╣реИ:
- рдирд╛рдЗрдЯ рдЯреЗрд╕реНрдЯ рд░рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдЬрд┐рддрдиреА рддреЗрдЬрд╝реА рд╕реЗ рдкрд╛рд╕ рд╣реЛрдВрдЧреЗ, рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рдлрд┐рд▓рд╣рд╛рд▓, рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХрд╛ рдФрд╕рдд рдкреНрд░рджрд░реНрд╢рди рд╕рдордп 2 рдШрдВрдЯреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ;
- рджрд┐рди рдХреЗ рджреМрд░рд╛рди рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдЪрд▓рд╛рддреЗ рд╕рдордп, рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП рдХрдо рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрд╕рдХреА рдХрд╛рд░реНрдпрдмрд▓ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред
рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рддреЗрдЬ рдерд╛ рдЬреЛ рдЗрд╕ рдмрд╛рд░ рдкрд░рд┐рд╢реЛрдзрди рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ред
рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдореЗрдВ рдорд▓реНрдЯреА-рдереНрд░реЗрдбрд┐рдВрдЧ
SelfTester рдХреЛ рд╢реБрд░реВ рдореЗрдВ рдПрдХ рдорд▓реНрдЯреАрдереНрд░реЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕рд╛рде рдХрдИ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдереАред рдХреЗрд╡рд▓ рд╕реАрдорд╛ рдпрд╣ рдереА рдХрд┐ рдЖрдк рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдХреБрдЫ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рджреМрд░рд╛рди,
.vcxproj рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реАрдзреЗ рдкрд░рд┐рд╡рд░реНрддрди рд╢реБрд░реВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдЪрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
рдХрд╛рд░реНрдп рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдПрдХ рдмреБрджреНрдзрд┐рдорд╛рди рдХрд╛рд░реНрдп рдЕрдиреБрд╕реВрдЪрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рдорд╛рдирд╛рдВрддрд░ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рд╕рдЦреНрддреА рд╕реЗ рд╕реАрдорд┐рдд рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛ рд╕рдХреЗред
рдпреЛрдЬрдирд╛рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреЛ рд╕реНрддрд░реЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╣рд▓рд╛
рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕реНрддрд░ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ
PVS-Studio_Cmd.exe рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
.sln рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдорд╛рди рдЕрдиреБрд╕реВрдЪрдХ, рд▓реЗрдХрд┐рди
рд╕рдорд╛рдирд╛рдВрддрд░рддрд╛ рдбрд┐рдЧреНрд░реА рдХреА рдПрдХ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде,
PVS-Studio_Cmd.exe (рд╕реНрд░реЛрдд
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕реНрддрд░ рдкрд░) рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдорд╛рдирддрд╛рд╡рд╛рдж рдХреА рдбрд┐рдЧреНрд░реА рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рд╛рде рдХрд┐рддрдиреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдзрд╛рдЧреЗ рдЪрд▓рд╛рдиреЗ рдкрдбрд╝рддреЗ рд╣реИрдВред
рдЪрд╛рд░ рдФрд░
рдЖрда рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХреНрд░рдорд╢рдГ рд╕рдорд╛рдзрд╛рди рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реНрддрд░ рдХреА рд╕рдорд╛рдирддрд╛ рдбрд┐рдЧреНрд░реА рдХреЗ рд▓рд┐рдП рдЪреБрдиреЗ рдЧрдП рдереЗред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ 32 рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (4 рдПрдХ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдФрд░ 8 рдлрд╛рдЗрд▓реЗрдВ)ред рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ рдЖрда-рдХреЛрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рд╣реИред
рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкреНрд░рджрд░реНрд╢рди рдпрд╛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдорд╛рдирд╛рдВрддрд░рд╡рд╛рдж рдбрд┐рдЧреНрд░реА рдХреЗ рдЕрдиреНрдп рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдбреЗрд╡рд▓рдкрд░ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рддрд╛рд░реНрдХрд┐рдХ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪреБрдиреА рдЬрд╛рдПрдЧреАред
рдиреЛрдЯ: рдЪрд▓рд┐рдП рдЖрдЧреЗ рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рд╕рдорд╛рдирддрд╛ рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбрд┐рдЧреНрд░реА рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВред
рд╢реЗрдбреНрдпреВрд▓рд░
LimitedConcurrencyLevelTaskScheduler рдХреЛ
System.Threading.Tasks.TaskSaskuler рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ рдФрд░
ThreadPool рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЕрдзрд┐рдХрддрдо рд╕рдорд╛рдирддрд╛ рд╕реНрддрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рд╖реНрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рдВрд╢рд╛рдиреБрдЧрдд рдкрджрд╛рдиреБрдХреНрд░рдо:
LimitedConcurrencyLevelTaskScheduler : PausableTaskScheduler { .... } PausableTaskScheduler: TaskScheduler { .... }
PausableTaskScheduler рдЖрдкрдХреЛ рдХрд╛рд░реНрдп рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
LimitedConcurrencyLevelTaskScheduler рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдмреМрджреНрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рддрд╛ рд╣реИ, рд╕рдорд╛рдирд╛рдВрддрд░ рдбрд┐рдЧреНрд░реА, рдЕрдиреБрд╕реВрдЪрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЕрдиреНрдп рдХрд╛рд░рдХреЛрдВ рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред
LimitedConcurrencyLevelTaskScheduler рдХрд╛рд░реНрдп рдЪрд▓рд╛рддреЗ рд╕рдордп рдПрдХ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╢реЛрдзрди рдХреЗ рдХрд╛рд░рдг
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдЦрд╛рдореА рд╣реИ: рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИред рдФрд░ рдкрд░реАрдХреНрд╖рдг рдкреВрд▓ рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЖрдХрд╛рд░
рдмрд╣реБрдд рд╡рд┐рд╡рд┐рдз рд╣реИ: 8KB рд╕реЗ 4GB рддрдХ - рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЖрдХрд╛рд░ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ 1 рд╕реЗ рдХрдИ рд╣рдЬрд╛рд░реЛрдВ рд╕реНрд░реЛрдд рдХреЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХред
рдЕрдиреБрд╕реВрдЪрдХ рдХрд┐рд╕реА рднреА рдмреБрджреНрдзрд┐рдорд╛рди рдШрдЯрдХ рдХреЗ рдмрд┐рдирд╛, рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рдХрддрд╛рд░ рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдбрд╛рд▓рддрд╛ рд╣реИред рдореБрдЭреЗ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╕рд╛рде рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд╛рд░ рдмрдбрд╝реЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЖрда рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ), рддреЛ рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (32)ред
рд▓реЗрдХрд┐рди рдЖрдЗрдП рдПрдХ рдЕрдХреНрд╕рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдЬрдм рдХрдИ рдЫреЛрдЯреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдорд╛рдзрд╛рди рдмрдбрд╝рд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ 50 рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВ (рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛), рдЬрдмрдХрд┐ рдЕрдиреНрдп рддреАрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рддреАрди, рдЪрд╛рд░, рдкрд╛рдВрдЪ рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ 20 рдереНрд░реЗрдбреНрд╕ (8 + 3 + 4 + 5) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╣рдо рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рдордп рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдордЧреНрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред
рдиреЛрдЯ : рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЯреЛрдВрдЯреА рдЖрдорддреМрд░ рдкрд░ рдбрд┐рд╕реНрдХ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рд╣реИ, рди рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ред
рд╕реБрдзрд╛рд░
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЬреЛ рд╕реБрдзрд╛рд░ рд╕реНрд╡-рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд╡рд╣ рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рдзрд╛рди рд╕реВрдЪреА рдХреА рд░реИрдВрдХрд┐рдВрдЧ рд╣реИред рд╣рдореЗрдВ рдлрд╛рдЗрд▓реЛрдВ рдХреА рд╕рд╣реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдХреЗ, рдПрдХ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдП рдЧрдП рдереНрд░реЗрдбреНрд╕ (32) рдХреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЗрд╖реНрдЯрддрдо рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЪрд▓реЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдирд┐рдореНрди рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЪрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: 50, 3, 4 рдФрд░ 5.
рддреАрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рд░реНрдп рд╕рдмрд╕реЗ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрда рдпрд╛ рдЕрдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ (рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдЕрдзрд┐рдХрддрдо рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдЗрд╕ рддрд░рд╣, рд╣рдо рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ reads +
25 + + + рек + рел рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рд╛рдд рдзрд╛рдЧреЗ рдЕрднреА рднреА рдмрд┐рди рдмреБрд▓рд╛рдП рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рд╢реЛрдзрди рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрддрд╛ рд╣реИ, рдЬреЛ рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░ рдЪрд╛рд░ рдереНрд░реЗрдбреНрд╕ рд╕реАрдорд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЕрдм рдПрдХ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХрдИ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ 32 рд╕реВрддреНрд░ рд╣реИрдВред рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреАрди рдФрд░ рдЪрд╛рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рджреЛ рдФрд░ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЕрдкреНрд░рдпреБрдХреНрдд рдзрд╛рдЧреЗ рдХреЗ "рдЕрдВрддрд░" рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ 32 (8 + 8 + 4 + 5 +
3 +
4 ) рд╣реЛрдВрдЧреЗред
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рднреА рдмрд╣реБрдд рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред рд╕рдм рдХреБрдЫ рдПрдХ рджрд┐рди рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╣рдореЗрдВ рдХрд╛рд░реНрдп рд╡рд░реНрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
System.Threading.Tasks.Task рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рдФрд░ рдХреНрд╖реЗрддреНрд░ "рд╡рдЬрди" рдХрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯред рд╣рдо рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рд╡рдЬрди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: рдпрджрд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЖрда рд╕реЗ рдХрдо рд╣реИ, рддреЛ рд╡рдЬрди рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 5)ред рдпрджрд┐ рд╕рдВрдЦреНрдпрд╛ рдЖрда рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рд╡рдЬрди рдЖрда рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛ред
рд╣рдореЗрдВ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЛ рднреА рд╡рд┐рд╕реНрддреГрдд рдХрд░рдирд╛ рдерд╛: 32 рдереНрд░реЗрдбреНрд╕ рдХреЗ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рдЬрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рд┐рдЦрд╛рдПрдВред рд╣рдореЗрдВ рдПрдХ рд╕рд╛рде рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдереНрд░реЗрдбреНрд╕ рдХреА рдЕрдиреБрдорддрд┐ рднреА рджреЗрдиреА рдереАред
рдЕрдВрдд рдореЗрдВ, рд╣рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╡рдЬрди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдФрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд▓ рдореЗрдВ рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдпрд╛рдВрдХрди (MSBuild API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА (рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛)ред
рдкрд░рд┐рдгрд╛рдо
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрддрдиреЗ рд▓рдВрдмреЗ рдкрд░рд┐рдЪрдп рдХреЗ рдмрд╛рдж рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЖрдпрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рд╕реБрдзрд╛рд░ рд╕рд░рд▓ рдФрд░ рддреЗрдЬ рдереЗред
рдпрд╣рд╛рдВ рд▓реЗрдЦ рдХрд╛ рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЖрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдореИрдВ рдЖрдкрдХреЛ "рдХреНрдпрд╛ рд╣рдореЗрдВ рдХрдИ рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдореЗрдВ рдорд┐рд▓рд╛" рдФрд░ рдЗрд╕рд╕реЗ рдЬреБрдбрд╝реА рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред
рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ
рддреЛ, рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рднреА рдПрдХ рдкрд░рд┐рдгрд╛рдо рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкреВрд▓ рдореЗрдВ рдмрдбрд╝реЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдЖрда рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдХрдо) рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдкрд░ рдмрд╣реБрдд рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд▓рдЧрднрдЧ рдЕрджреГрд╢реНрдп рд╣реИрдВ: рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╕рдордп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирдиреНрд╣рд╛-рдирдиреНрд╣рд╛ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ, рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдордиреЗ рдирдП рд╢реЛрдзрди рдХреЛ "рдЧреИрд░-рдкрд░реЗрд╢рд╛рди" рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдкреВрд▓ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╢рд╛рдпрдж, рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рдПрдЧреАред
рдФрд░ рдлрд┐рд░ ...

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

рдЗрд╕ рдмрд╛рд░ рд╕реНрдЯреИрдХ рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдереА - рддреНрд░реБрдЯрд┐ xml рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдереАред рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдХрд┐ рдЬрдм
Proto_IRC.vcxproj рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдЗрд╕рдХреА xml рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡) рдХреА рдлрд╝рд╛рдЗрд▓ рдХреЛ
рд╕рдВрднрд╛рд▓рддреЗ рд╕рдордп рдХреБрдЫ рдРрд╕рд╛ рд╣реА рд╣реБрдЖ, рддреЛ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐
XmlTextReader рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрд╛ред
рдХрд╛рдлреА рдХрдо рд╕рдордп рдореЗрдВ рджреЛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрдиреЗ рд╕реЗ рд╣рдореЗрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреА рдкрдбрд╝реАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдХрд╣рд╛, SelfTester рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЕрдВрддрд┐рдо рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ред рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рджреБрдЦреА, рд╣рдореЗрдВ рдХреБрдЫ рднреА рд╕рдВрджрд┐рдЧреНрдз рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдордиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ (рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ) рд╕реЗ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред
рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ: рдЧрд▓рдд рдХреЛрдб SelfTester рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ (
PVS-Studio_Cmd.exe ) рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреА рдУрд░ рдзреНрдпрд╛рди рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рдРрд╕реА рдХреЛрдИ рджреБрд░реНрдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реБрдИ рдереАред
рдЗрд╕ рдмреАрдЪ, SelfTester рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдХрдЯ рдирдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рдерд╛:
XmlException рдлрд┐рд░ рд╕реЗред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХреЗ рдзрд╛рдЧреЗ рд╣реИрдВ рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред SelfTester рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
- рд╕рдорд╛рдзрд╛рди рдХреЗ рднрд╛рд░ рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЧрдгрдирд╛ рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди: рдПрдХ рдирдпрд╛ рдХрджрдо рдЬреЛ рд╢реБрд░реВ рдореЗрдВ рд╕рдВрджреЗрд╣ рдкреИрджрд╛ рдХрд░рддрд╛ рдерд╛;
- рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛: рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╣реА рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ) рдФрд░ рдпрд╣ рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореВрд▓реНрдпрд╛рдВрдХрди: рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдзрд╛рдЧрд╛-рд╕реБрд░рдХреНрд╖рд┐рдд рддрдВрддреНрд░, рдкреАрд╡реАрдПрд╕- Studio_Cmd.exe рд╕реЗ рдкреБрди: рдЙрдкрдпреЛрдЧ;
- рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реНрд╕ рдХреЛ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ (рд╕рдВрд╢реЛрдзрд┐рдд .vcxproj рдлрд╛рдЗрд▓реНрд╕ рдХреЛ рд╢реБрд░реБрдЖрддреА рдлрд╛рдЗрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ ), рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реНрд╕ рдХрд╛рдо рдХреЗ рджреМрд░рд╛рди рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╡рд░реНрдЬрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдпрд╣ рдПрдХ рдЕрдВрддрд┐рдо рдЪрд░рдг рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрдиреНрдп рддрдВрддреНрд░реЛрдВ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИред
рдЕрдиреБрдХреВрд▓рди (рд╡рдЬрди рдЧрдгрдирд╛) рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝реЗ рдЧрдП рдирдП рдХреЛрдб рдкрд░ рд╕рдВрджреЗрд╣ рдЧрд┐рд░ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдХреЛрдб рдЬрд╛рдВрдЪ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ SelfTester рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдареАрдХ рдмрд╛рдж рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реИ, рддреЛ рдкрд░реАрдХреНрд╖рдХ рд╣рдореЗрд╢рд╛ рдкреВрд░реНрд╡-рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рдЕрдВрдд рддрдХ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЬрдЧрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рджрд┐рдЦреАред
рдлрд┐рд░, рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕реНрд░реЛрдд рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдереЗред
рджрд░реНрдж
рдЕрдЧрд▓реЗ рдорд╣реАрдиреЗ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХрднреА-рдХрднреА рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрддрд╛ рд░рд╣рд╛ред рдЯрд┐рдХрдЯ рдбреЗрдЯрд╛ рд╕реЗ рднрд░рддрд╛ рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдЗрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреНрд░реИрд╢ рд╕рдорд╛рди
XmlException рдХреЗ рд╕рд╛рде рдереЗ
ред рдХрднреА-рдХрднреА рдХреБрдЫ рдФрд░ рднреА рд╣реЛрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди
PVS-Studio_Cmd.exe рд╕реЗ рд╕рдорд╛рди рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдб рдкрд░ред
рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ, рдЖрдВрддрд░рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдирд╣реАрдВ рджреА рдЬрд╛рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрд╡рд╢рд┐рд╖реНрдЯ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдЙрд▓рдЭрд╛рддреЗ рд░рд╣реЗред рд╕рдордп-рд╕рдордп рдкрд░, рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реБрдП (рдкреВрд░реА рдШрдЯрдирд╛ рдХреЗ рджреМрд░рд╛рди рдЫрд╣ рд▓реЛрдЧреЛрдВ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рджреЛ рдЗрдВрдЯрд░реНрди рднреА рд╢рд╛рдорд┐рд▓ рдереЗ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдореЗрдВ рдЗрд╕ рдХрд╛рд░реНрдп рд╕реЗ рд╡рд┐рдЪрд▓рд┐рдд рд╣реЛрдирд╛ рдкрдбрд╝рд╛ред
рд╣рдорд╛рд░реА рдкрд╣рд▓реА рдЧрд▓рддреАред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣рдо рдПрдХ рдмрд╛рд░ рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреИрд╕реЗ? рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ рдПрдХ рдирдП рдЕрдиреБрдХреВрд▓рди рдХреЗ рдХрд╛рд░рдг рд╣реБрдИ рдереАред рдЖрдЦрд┐рд░рдХрд╛рд░, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЧрдпрд╛, рдФрд░ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрддрдиреЗ рдмреБрд░реЗ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдЕрдиреБрдХреВрд▓рди рд╕реЗ рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рд╣реБрдЖред рддреЛ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛?
рдЗрд╕ рдЕрдиреБрдХреВрд▓рди рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рд╕рдордЭрддреЗ рд╣реИрдВ, рдпрд╣ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдордиреЗ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЦреБрдж рдмрдирд╛рдпрд╛ред рд╣рдордиреЗ рдЙрддреНрддрд░ рдЦреЛрдЬрдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛: "рдХреИрд╕реЗ ???" рдпрд╣ рдХреИрд╕реЗ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрддрд╛ рд╣реИ? рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ рд╕рд╣реА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рдорд╛рд░реА рджреВрд╕рд░реА рдЧрд▓рддреАред рдЕрдиреНрдп рд▓реЛрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ
рдЬреБрдЯ рдЧрдП ред рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝реА рдЧрд▓рддреА рд╣реИред рди рдХреЗрд╡рд▓ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛, рдмрд▓реНрдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд░реНрдмрд╛рдж рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд╣рд╛рдВ, рдирдП рд▓реЛрдЧреЛрдВ рдиреЗ рдирдП рд╡рд┐рдЪрд╛рд░ рд▓рд╛рдП, рд▓реЗрдХрд┐рди рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдХреБрдЫ рднреА рдирд╣реАрдВ) рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрд╛ред рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреВрд╕рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдПрдХ рдФрд░ рдПрдХ рд╣реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣рдорд╛рд░реЗ рдЗрдВрдЯрд░реНрди рдЯреЗрд╕реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдереЗред рдпрд╣ рдорджрдж рдирд╣реАрдВ рдХреАред рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ MSBuild рдПрдкреАрдЖрдИ рдЕрдВрджрд░ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рдерд╛, рдЬрд┐рд╕реЗ рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдЬрд╛рди рдЪреБрдХреЗ рд╣реИрдВред
XmlException рдЕрдкрд╡рд╛рдж рд╣реЛрдиреЗ рдкрд░ рд╣рдордиреЗ рдорд┐рдиреА рдбрдВрдк рдСрдЯреЛ рд╕реЗрд╡рд┐рдВрдЧ рдХреЛ рднреА рдЬреЛрдбрд╝рд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдерд╛ рдЬреЛ рдпрд╣ рд╕рдм рдбрд┐рдмрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЧрд░реАрдм рдЖрджрдореА! рдЪрд░реНрдЪрд╛ рд╣реБрдИ, рд╣рдордиреЗ рдЕрдиреНрдп рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪреАрдЬреЗрдВ рдХреАрдВред
рдЕрдВрдд рдореЗрдВ, рддреАрд╕рд░реА рдЧрд▓рддреАред рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЬрд┐рд╕ рд╕рдордп рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЙрд╕ рд╕рдордп рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЖрдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИ? рдареАрдХ рд╣реИ, рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЧрд┐рди рд╕рдХрддреЗ рд╣реИрдВред рдЯрд┐рдХрдЯ 09/17/2018 рдХреЛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ 02/20/2019 рдХреЛ рдмрдВрдж рд╣реБрдЖ рдерд╛ред 40 рд╕реЗ рдЕрдзрд┐рдХ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдереАрдВ! рджреЛрд╕реНрддреЛрдВ, рдпрд╣ рдмрд╣реБрдд рд╕рдордп рд╣реИ! рд╣рдордиреЗ THIS рдХреЗ рд╕рд╛рде
рдЦреБрдж рдХреЛ рдкрд╛рдВрдЪ рдорд╣реАрдиреЗ рддрдХ рд╡реНрдпрд╕реНрдд рд░рд╣рдиреЗ рджрд┐рдпрд╛ред рдЙрд╕реА рд╕рдордп рд╣рдо рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2019 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╡реНрдпрд╕реНрдд рдереЗ, рдЬрд╛рд╡рд╛ рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╕рдкреЛрд░реНрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ, MISRA C / C ++ рдорд╛рдирдХ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ, C # рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ, рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рднрд╛рдЧ рд▓реЗрдиреЗ, рд▓реЗрдЦреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓рд┐рдЦрдиреЗ, рдЖрджрд┐ред рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рдмреЗрд╡рдХреВрдл рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг рдЗрди рд╕рднреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдХрдо рд╕рдордп рдорд┐рд▓рд╛ред
рджреЛрд╕реНрддреЛрдВ, рд╣рдорд╛рд░реА рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рд╕реАрдЦрддреЗ рд╣реИрдВ рдФрд░ рдРрд╕рд╛ рдХрднреА рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рднреА рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдпрд╣ рдореИрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред
рдареАрдХ рд╣реИ, рдпрд╣ рдПрдХ рдордЬрд╛рдХ рдерд╛, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБ рдХрд┐ SelfTester рдореЗрдВ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдереА :)
рдмрд┐рдВрдЧреЛ!
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдорд╛рд░реЗ рдмреАрдЪ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдерд╛ рдЬреЛ рд╕реНрдкрд╖реНрдЯ-рджреГрд╖реНрдЯрд┐ рд╡рд╛рд▓рд╛ рдерд╛ (рдореЗрд░реЗ рд╕рд╣рдХрд░реНрдореА рд╕рд░реНрдЧреЗрдИ рд╡рд╛рд╕рд┐рд▓рд┐рд╡), рдЬреЛ рдмрд╕ рдПрдХ рдЕрд▓рдЧ рдХреЛрдг рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦрддрд╛ рдерд╛ (рдФрд░ рдпрд╣ рднреА - рд╡рд╣ рдереЛрдбрд╝рд╛ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдирд┐рдХрд▓рд╛)ред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдпрд╣ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░ рд╕реЗ рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рдХрд░рддрд╛ рд╣реИ? рдЖрдорддреМрд░ рдкрд░ рд╣рдордиреЗ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рд▓реЙрдиреНрдЪ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдордиреЗ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд "рдХреБрдЫ" рд╕реНрд╡рдпрдВ рд╕реЗрд▓реНрдлрд╕реНрдЯрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдгред
рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░, рдереНрд░реЗрдб рдЬреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрджрд░реНрднреЛрдВ рд╕реЗ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдкрд░реАрдХреНрд╖рдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрдИ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдпреБрдЧрдкрдд рд░рди рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕рдВрд░рдХреНрд╖рдг
рдмрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдм рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд┐рдЦрддрд╛ рд╣реИ:
рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдирд╣реАрдВ рдерд╛ред
рдкрд╛рдЧрд▓, рд▓реЗрдХрд┐рди рд╕рдЪ рд╣реИ - рд▓рдЧрднрдЧ рдЫрд╣ рдорд╣реАрдиреЗ рдХреА рдкреАрдбрд╝рд╛ рдХреЗ рджреМрд░рд╛рди рдХрд┐рд╕реА рдиреЗ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ред рд╕рдВрджрд░реНрднреЛрдВ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдирд╛ рдПрдХ рдХрд╛рдлреА рддреЗрдЬрд╝ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЗрддрдирд╛ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реЗрд▓реНрдлрдЯреЗрд╕реНрдЯрд░ рдХреЗ рдкреБрди: рд▓реЙрдиреНрдЪ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рди рд╣реЛред рдФрд░ рдЬрдм рд╣рдо рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? рдпрд╣ рд╕рд╣реА рд╣реИ, рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╡рдЬрди рдХреА рдЧрдгрдирд╛ред рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛
.vcxproj рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ
рд▓рд┐рдЦрддреА рд╣реИ рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред
XmlException рдХреЛ рд╣рд╛рдп рдХрд╣реЗрдВред
рд╕рд░реНрдЧреЗрдИ рдХреЛ рдпрд╣ рд╕рдм рдкрддрд╛ рдЪрд▓рд╛ рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд░реАрдХреНрд╖рдХ рдХреЛ рд╕рдВрджрд░реНрдн рд▓реЙрдЧ рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реАред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ MISRA рдирд┐рдпрдореЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдпрд╛ред рдЖрдк рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕реАрдзреЗ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ:
рдЙрд╕рдХреЗ рдмрд╛рдж,
SelfTester рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдХрд┐рд╕реА рддрд░рд╣ рдЦреБрдж рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛, рдкрд░реАрдХреНрд╖рдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЪрд▓рд╛рдпрд╛ред
рдирд┐рдВрджрд╛ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖
рдмреЗрд╢рдХ, рд╣рдордиреЗ рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП рдЕрдиреБрдХреВрд▓рди рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ (рдЬреЛ рдХрд┐ рдЕрдХреНрд╖рдо рд╣реИ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд░реАрдХреНрд╖рдХ рджреНрд╡рд╛рд░рд╛ рдЦреБрдж рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмреАрдЪ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЖрд╕рд╛рди рдерд╛ред рдФрд░ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрд╛ред рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЙрдкрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдордиреЗ рдЙрдкрд░реЛрдХреНрдд рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдкрд░реАрдХреНрд╖рдХ рдХреЗ рдПрдХ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬреЛрдбрд╝рд╛ред
рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреА рдореБрдЦреНрдп рдЧрд▓рддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдКрдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ, рдЬрдм рд╕рдорд╕реНрдпрд╛ рдХреА рдЦреЛрдЬ рдХреА, рддреЛ рдЖрддреНрдо-рдзреНрд╡рдЬрдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрддред рд╣рдо рдЗрдВрд╕рд╛рди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЧрд▓рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдкрдиреА рдЧрд▓рддрд┐рдпреЛрдВ рд╕реЗ рд╕реАрдЦрдирд╛ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рд╕реЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИрдВ:
- рд╣рдореЗрдВ рдХрд╛рд░реНрдп рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП;
- рдХрднреА-рдХрднреА рд╣рдореЗрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рд░реБрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ;
- рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рджреЗрдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╕рдордп рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдХреЛ рдорд╛рдорд▓реЗ рдХреА рд╕реБрд░рдВрдЧ рджреГрд╖реНрдЯрд┐ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ рдЬрдмрдХрд┐ рдЙрд╕реЗ рдирдП рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- рдкреБрд░рд╛рдиреЗ рдпрд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдбрд░реЛ рдорддред
рдпрд╣реА рд╣реИ, рдЗрд╕ рдмрд╛рд░ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рддреБрдореНрд╣реЗрдВ рдмрдЧреИрд░ рдХреЛрдб рдХреЗ рдХрд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВ!