рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╕реНрддреБрдПрдВ ( ~T
рдФрд░ @T
рдЬрд╣рд╛рдВ T
рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ) рдРрд╕реА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдЬреЛ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЫрд┐рдкрд╛рддреА рд╣реИрдВ рдФрд░ рдПрдХ рдЖрднрд╛рд╕реА рд╡рд┐рдзрд┐ рдкреНрд░реЗрд╖рдг рддрд╛рд▓рд┐рдХрд╛ (рдпрд╛рдиреА vtable) рд▓реЗ рдЬрд╛рддреА рд╣реИрдВред
рддреЛ, рджреЛ рдмрд╛рддреЗрдВ:
info vtbl
рдпрд╛ рд╢рд╛рдпрдж info vtable
)ред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдЕрдкрдиреА рдбреАрдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдорд╛рд▓рд┐рд╢ рдХрд░ рд╕рдХреЗрдВ рддрд╛рдХрд┐ рдЬреАрдбреАрдмреА рд╣рдорд╛рд░реЗ vtables рдХреЛ рднреА рдЙрд╕реА рддрд░рд╣ рдкреНрд░рд┐рдВрдЯ рдХрд░ рд╕рдХреЗредрд╡рд╣рд╛рдВ рдХреЛрдИ рдирд╣реАрдВ рд╣реИред
рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдбреАрдмрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдореИрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдХрд▓рди-рд╕рдордп рдЗрдХрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдЬреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рдордп рдорд┐рдЯрд╛ рджреА рдЬрд╛рддреА рд╣реИред
@jdm рдХреНрдпрд╛ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ @Trait рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рд╛рдБ, рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╣рдо рдбрд┐рдмрдЧрд░ рдХреЗ рд▓рд┐рдП vtable рдХрд╛ рдкрд░реНрджрд╛рдлрд╛рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?) рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдореИрдВ рдмрдЧ рд╢реАрд░реНрд╖рдХ рдФрд░ рд╡рд┐рд╡рд░рдг рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рджреВрдВрдЧрд╛ред
рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╕реНрддреБрдУрдВ (~ рдФрд░ @ рдХрд┐рд╕реНрдо рдХреЗ) рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрдХреЛрдк рдХрд░рдирд╛ рдареАрдХ рд╣реЛрдЧрд╛ред
middle/trans/debuginfo.rs
: cx.sess.span_note(span, "debuginfo for trait NYI");
рдпрд╛рдиреА рдпрд╣ рдЕрднреА рднреА рдорд╛рдиреНрдп рд╣реИ, рдареАрдХ рд╕реЗ рдЯреИрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ рд╣реИ, 2013-06-19ред
рдЯреНрд░рд╛рдЗрдПрдЬ рдХрд╛ рджреМрд░рд╛; @michaelwoerister рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддреЗ рд╣реБрдПред
рдЯреНрд░рд╛рдЗрдПрдЬ рдХрд╛ рджреМрд░рд╛; @michaelwoerister рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддреЗ рд╣реБрдПред
рдпрд╣ рдЕрднреА рднреА NYI рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╣реАрдиреЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдирд┐рдкрдЯрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреАрдЖрд░ #9168 рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рд╕рдорд░реНрдерди рд╣реИред рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╕рд╣реА рдЖрдХрд╛рд░ (рджреЛ рдкреЙрдЗрдВрдЯрд░реНрд╕) рдФрд░ рд╕рд╣реА рдирд╛рдо ({sigil}{mutability}{trait name}) рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рд╣реА рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ "рд╡рд╕рд╛ рд╕реВрдЪрдХ" рдХреЗ рдЗрдВрдЯреАрд░рд┐рдпрд░ рдХрд╛ рдЕрднреА рдФрд░ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЧрд╛рдпрдм рд╣реИред рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
1.0 рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрдЪреНрдЪ
@michaelwoerister : рд╡реИрд╕реЗ, рдирдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд▓реЗрдЖрдЙрдЯ [drop_glue, method, method2, method3, ...]
ред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд╕реБрдкрд░рдЯреНрд░реЗрдЯ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред
рдпрд╣ рдбреАрдПрд╕рдЯреА рдХреЗ рд╕рд╛рде рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Fat<Trait>
рдЬреИрд╕реА рд╡рд╕реНрддреБрдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬрд╣рд╛рдВ Fat
рдПрдХ рдбреАрдПрд╕рдЯреА рд╕рдВрд░рдЪрдирд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдЯрдм рдХреЛрдб рдереЛрдбрд╝рд╛ рдФрд░ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕реНрдЯрдм рд╣реИред рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдПрдХ FIXME рдЫреЛрдбрд╝рд╛ред
рдЯреНрд░рд╛рдЗрдПрдЬ рдмрдВрдк: рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реИ рдХрд┐ рдЖрдЬ рдЗрд╕рдХреА рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИред
рдЕрднреА рднреА рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ
рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рдереЗ:
(рез) рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рд╡рд░рдг рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдЪреВрдВрдХрд┐ рдбреАрдбрдмреНрд▓реНрдпреВрдПрдЖрд░рдПрдл рдорд╛рдирдХ рдореЗрдВ рдЕрднреА рддрдХ рдХреЛрдИ рд▓рдХреНрд╖рдг рдирд╣реАрдВ рд╣реИрдВ, DW_AT_interface
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж DW_AT_struct
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд╕реА-рдУрд░рд┐рдПрдВрдЯреЗрдб рдбрд┐рдмрдЧрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рдВрдЧрдд рд╣реИред
(реи) рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреЙрдЗрдВрдЯрд░реНрд╕ ( &Trait
et al) рдХреЛ (*(), *OpaqueVTable<Trait>)
рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреБрдкрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд░реЗрдВред
(рей) рдкрд╛рдпрдерди рдореЗрдВ рдХрд╕реНрдЯрдо GDB/LLDB рдХрдорд╛рдВрдб рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдЬреЛ рдПрдХ рдлреИрдЯ рдкреЙрдЗрдВрдЯрд░ рджрд┐рдП рдЬрд╛рдиреЗ рдкрд░, рдкреЙрдЗрдВрдЯрд░ рд╡реИрд▓реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ vtable рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдЯрд╛рдЗрдк рдХрд░реЗрдВред
рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдЙрдкрд▓рдмреНрдз рдореМрдЬреВрджрд╛ рд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред vtable рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреНрд░рддреАрдХ рдирд╛рдореЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╕реНрддреБ рдХреЛ рднреА рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреЗрд╡рд▓ рдбрд┐рдмрдЧ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдб рдореЗрдВ (рдпрд╛рдиреА, рд░рд┐рд▓реАрдЬрд╝ рдмрд┐рд▓реНрдб рдирд╣реАрдВ) рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯреА рд░рд╛рд╢рд┐ рд╕реЗ
рдЯреНрд░рд╛рдЗрдПрдЬ: рдЕрднреА рднреА рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред cc @Manishearth @tromey P-low
рдпрд╣ рдЕрдм P-low
рдФрд░ P-medium
рд╣реИ
рдкреА-рдорд╛рдзреНрдпрдо рдХреЛ рд╣рдЯрд╛рдирд╛
рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕ рдкрд░ рдереЛрдбрд╝рд╛ рдЧреМрд░ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЬреЛ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ рд╡рд╣ рд╣реИ:
DW_AT_containing_type
рдХреЛ рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)редрдлрд┐рд░ рдПрдХ рдбрд┐рдмрдЧрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ: рдпрджрд┐ рдХрд┐рд╕реА рдорд╛рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдПрдХ vtable рд╣реИ, рддреЛ рдирд┐рдореНрди рд╕реЗ vtable рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, vtable рдкреНрд░рдХрд╛рд░ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП DWARF рдореЗрдВ vtable рдХрд╛ рдкрддрд╛ рджреЗрдЦреЗрдВ, рдФрд░ рдлрд┐рд░ рдареЛрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдкреЗрд▓реЛрдб рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдбреАрдХреЛрдб рдХрд░реЗрдВред
рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ LLVM рдкреИрдЪ рд╣реИ рдЬреЛ rustc рдХреЛ рдПрдХ рдЫреЛрдЯрд╛ DWARF рдПрдХреНрд╕рдЯреЗрдВрд╢рди ( DW_AT_containing_type
) рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИ; vtable (рдкрддрд╛ рдФрд░ рдпреБрдХреНрдд рдкреНрд░рдХрд╛рд░, рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдирд╣реАрдВ) рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ rustc рдкреИрдЪ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ gdb рдкреИрдЪ рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдФрд░ print
рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЖрдЬ рдкрд╣рд▓реА рд╕рдлрд▓рддрд╛:
(gdb) p tu
$1 = traitobjtest::&T {pointer: 0x7fffffffe047 "\027\070\340\377\377\377\177\000", vtable: 0x5555555c34e8 <vtable> "\360\253UUUU\000"}
(gdb) p *tu
$2 = 23
рдЙрддреНрддреЗрдЬрд┐рдд рдХрд░рдиреЗрд╡рд╛рд▓рд╛!
LLVM рдкреИрдЪ рдпрд╣рд╛рдБ рд╣реИ: http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20171016/495458.html
рдлреИрдмреНрд░рд┐рдХреЗрдЯрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛; рд╡рд╣рд╛рдВ рднреА рдЕрдиреБрд╕рд░рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: https://reviews.llvm.org/D39503
рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП gdb рдкреИрдЪ рдпрд╣рд╛рдБ рд╣реИ: https://sourceware.org/ml/gdb-patches/2017-11/msg00289.html
рднрд╛рдЧ 2 рдХреЛ vtable рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╕реНрдЯрд╕реА рдмрд┐рдЯреНрд╕ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрднреА рддрдХ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЬреАрдбреАрдмреА рдореЗрдВ info vtbl
рдмрд┐рдЯреНрд╕ рдХрдард┐рди рдирд╣реАрдВ рд╣реИрдВ, рдЬреНрдпрд╛рджрд╛рддрд░ рдореМрдЬреВрджрд╛ рдХрдорд╛рдВрдб рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡рд╣рд╛рдВ рд╕рд╣реА рдлрд╝реАрд▓реНрдб рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд╕реНрддреБрдУрдВ рдкрд░ рд╡рд┐рдзрд┐ рдХреЙрд▓ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рднреА рд╕реАрдзрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬреАрдбреАрдмреА рдкреИрдЪ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг 2 рдпрд╣рд╛рдВ рд╣реИ: https://sourceware.org/ml/gdb-patches/2017-11/msg00369.html
рдЬреАрдбреАрдмреА рдкреИрдЪ рдЕрдм рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЕрднреА рднреА рдЕрдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдХрд╛рд░реНрдп рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
@tromey "vtable рдХрд╛рд░реНрдп" рдХреЗ рд▓рд┐рдП gdb рдкрд░рд┐рд╡рд░реНрддрди рдпрд╛ рдХреЗрд╡рд▓ rustc рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
@tromey "vtable рдХрд╛рд░реНрдп" рдХреЗ рд▓рд┐рдП gdb рдкрд░рд┐рд╡рд░реНрддрди рдпрд╛ рдХреЗрд╡рд▓ rustc рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА; рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╕рд┐рд░реНрдл rustc рдмрд┐рдЯреНрд╕ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫреА рд╢реБрд░реБрдЖрдд рд╣реЛрдЧреА (рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдкрд╣рд▓реЗ рдЖрдирд╛ рд╣реЛрдЧрд╛)ред рдпрд╣рд╛рдБ рдХрд╛рд░реНрдп рдпрд╣ рд╣реИ рдХрд┐ rustc DWARF рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдХреЗ рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдХрд╛ рдЙрддреНрд╕рд░реНрдЬрди рдХрд░реЗ - рдЗрд╕рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рд╕рджрд╕реНрдп рдХрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдирд╛рдоред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдЬ рдкрд╣рд▓реА рд╕рдлрд▓рддрд╛: