GNU рдмрд┐рдиреНрдпреБрдЯрд┐рд▓реНрд╕рдЪреЗ рдкреНрд░рдХрд╛рд╢рди 2.34

рд╕рд╛рджрд░ рдХрд░рдгрд╛рд░рд╛ рд╕рд┐рд╕реНрдЯрдо рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЬрдЪрд╛ рд╕рдВрдЪ рд╕реЛрдбрдгреЗ GNU рдмрд┐рдиреНрдпреБрдЯрд┐рд▓реНрд╕ 2.34, рдЬреНрдпрд╛рдордзреНрдпреЗ GNU рд▓рд┐рдВрдХрд░, GNU рдЕрд╕реЗрдВрдмрд▓рд░, nm, objdump, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, рд╕реНрдЯреНрд░рд┐рдк рдпрд╛рдВрд╕рд╛рд░рдЦреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд.

╨Т рдирд╡реАрди рдЖрд╡реГрддреНрддреА:

  • рд╕реЗрд╡рд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛