- рд╕реЗрд╡рд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ
debuginfod , рдЬреЗ ELF/DWARF рдбреАрдмрдЧрд┐рдВрдЧ рдорд╛рд╣рд┐рддреА рдЖрдгрд┐ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА HTTP рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗ. рдбреАрдмрдЧрд┐рдирдлреЛрдб рд╕рдкреЛрд░реНрдЯрд╕рд╣ рдмрд┐рдиреНрдпреБрдЯрд┐рд▓реНрд╕ рдмрдирд╡рддрд╛рдирд╛, рд░реАрдбреЗрд▓реНрдл рдЖрдгрд┐ рдСрдмреНрдЬрдбрдВрдк рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕рдмрджреНрджрд▓ рдЧрд╣рд╛рд│ рдбреАрдмрдЧрд┐рдВрдЧ рдорд╛рд╣рд┐рддреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбреАрдмрдЧрд┐рдирдлреЛрдб рд╕рд░реНрд╡реНрд╣рд░рд╢реА рдХрдиреЗрдХреНрдЯ рд╣реЛрдК рд╢рдХрддрд╛рдд. рдЪреНрдпрд╛ рд╕рд╛рдареАрд╕рдВрдореЗрд▓рдиреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдордзреНрдпреЗ debuginfod рд╕рд╣ binutils, рддреБрдореНрд╣реА тАЬ--with-debuginfodтАЭ рдкрд░реНрдпрд╛рдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рд╛ рдЖрдгрд┐ рдХрд┐рдЯрдордзреНрдпреЗ рдкреБрд░рд╡рд▓реЗрд▓реНрдпрд╛ libdebuginfod рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рджреНрдпрд╛.elfutils ; - рдЯреНрд░рд╛рдВрдЭрд┐рд╢рдирдЪреНрдпрд╛ рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рдирд╕рд╣ ascii рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЬрдирд░реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рд╕реЗрдореНрдмрд▓рд░ (objdump тАФрдбрд┐рд╕реЗрдореНрдмрд▓) рдордзреНрдпреЗ тАЬ--visualize-jumpsтАЭ рдкрд░реНрдпрд╛рдп рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреЛ рдХрдорд╛рдВрдб рд╕реНрдЯреНрд░реАрдордордзреАрд▓ рд▓рдХреНрд╖реНрдп рдмрд┐рдВрджреВ рдЖрдгрд┐ рдЬрдВрдк рд╕реНрддреНрд░реЛрдд рдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рд╕рдВрдмрдВрдз рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЛ. рд╡реНрд╣рд┐рдЬреНрдпреБрдЕрд▓рд╛рдпрдЭреЗрд╢рди x86, x86_64 рдЖрдгрд┐ ARM рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдХрд╛рд░реНрдп рдХрд░рддреЗ;
c6: | | \тАФтАФтАФ-> 00 00 00 00 mov $0x0,%esi рд╡реНрд╣рд╛
cb: | | /тАФ-> 48 8b 3d 00 00 00 00 mov 0x0(%rip),%rdi # d2
d2: | | | 31 c0 xor %eax, %eax
d4: | | | //тАФ e8 00 00 00 00 callq d9
d9: | | | \-> bf 02 00 00 00 mov $0x2,%edi
de: | +тАФтАФтАФтАФтАФ|тАФтАФ e8 00 00 00 00 callq e3
e3: | \тАФтАФтАФтАФ|тАФ-> рекрео реореп da mov %rbx,%rdx
e6: | | 00 00 00 00 mov $0x0,%esi
eb: | \тАФтАФ eb de jmp cb
ed: \тАФтАФтАФтАФтАФтАФ-> 48 8b 16 mov (%rsi),%rdx - Z80 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА ELF рдлрд╛рдЗрд▓реНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЕрд╕реЗрдВрдмрд▓рд░ рдЖрдгрд┐ рд▓рд┐рдВрдХрд░рдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ (ADL рдЖрдгрд┐ Z180 рдореЛрдбрдордзреАрд▓ Zilog Z80 рдЖрдгрд┐ Zilog eZ80 рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗрдд);
- рд╕рдВрдЧреНрд░рд╣рдгрд╛рддреВрди рдХрд╛рдврдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА тАЬ--рдЖрдЙрдЯрдкреБрдЯтАЭ рдкрд░реНрдпрд╛рдп тАЬarтАЭ рдпреБрдЯрд┐рд▓рд┐рдЯреАрдордзреНрдпреЗ рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ;
- рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рднрд╛рдЧ рд╣рдЯрд╡рдгреНрдпрд╛рдкрд╛рд╕реВрди рд░реЛрдЦрдгреНрдпрд╛рд╕рд╛рдареА "--keep-section" рдкрд░реНрдпрд╛рдп "objcopy" рдЖрдгрд┐ "strip" рдпреБрдЯрд┐рд▓рд┐рдЯреАрдордзреНрдпреЗ рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ.
рд╕реНрддреНрд░реЛрдд: opennet.ru