GNU Binutils 2.34 рдХреЛ рд░рд┐рд▓реАрдЬ

рдкрд░рд┐рдЪрдп рдЧрд░рд╛рдП рдкреНрд░рдгрд╛рд▓реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реБ рдХреЛ рдПрдХ рд╕реЗрдЯ рдХреЛ рд░рд┐рд▓реАрдЬ GNU рдмрд┐рдиреБрдЯрд┐рд▓реНрд╕ реи.рейрел, рдЬрд╕рдорд╛ GNU linker, GNU рдПрд╕реЗрдореНрдмрд▓рд░, nm, objdump, strings, strip рдЬрд╕реНрддрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред

╨Т рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг:

  • рд╕реЗрд╡рд╛ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ debuginfod, рдЬреБрди ELF/DWARF рдбрд┐рдмрдЧрд┐рдЩ рдЬрд╛рдирдХрд╛рд░реА рд░ рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░рджрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ HTTP рд╕рд░реНрднрд░ рд╣реЛред рдбрд┐рдмрдЧрд┐рдирдлреЛрдб рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде рдмрд┐рдиреБрдЯрд┐рд▓рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджрд╛, рд░рд┐рдбреЗрд▓реНрдл рд░ objdump рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрд▓реЗ рдкреНрд░рд╢реЛрдзрди рднрдЗрд░рд╣реЗрдХреЛ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЫреБрдЯреЗрдХреЛ рдбрд┐рдмрдЧрд┐рдЩ рдЬрд╛рдирдХрд╛рд░реА рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдбрд┐рдмрдЧрд┐рдирдлреЛрдб рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред рдХреЛ рд▓рд╛рдЧреА рд╕рдореНрдореЗрд▓рдирд╣рд░реБ рдХрдиреНрдлрд┐рдЧрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдорд╛ debuginfod рд╕рдВрдЧ binutils, рддрдкрд╛рдИрдВрд▓реЗ "--with-debuginfod" рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдкрд░реНрдЫ рд░ рдХрд┐рдЯрдорд╛ рдЖрдкреВрд░реНрддрд┐ libdebuginfod рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреБрдкрд░реНрдЫред elfutils;
  • "--visualize-jumps" рд╡рд┐рдХрд▓реНрдкрд▓рд╛рдИ рдбрд┐рд╕реЗрдореНрдмрд▓рд░ (objdump тАФ Disassemble) рдорд╛ рдЯреНрд░рд╛рдиреНрдЬрд┐рд╕рдирдХреЛ рднрд┐рдЬреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рдирд╕рдБрдЧ ascii рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдердкрд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдХрдорд╛рдгреНрдб рд╕реНрдЯреНрд░рд┐рдордорд╛ рд▓рдХреНрд╖рд┐рдд рдмрд┐рдиреНрджреБ рд░ рдЬрдореНрдк рд╕реНрд░реЛрдд рдмреАрдЪрдХреЛ рд╕рдореНрдмрдиреНрдзрд▓рд╛рдИ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред x86, x86_64 рд░ рдПрдЖрд░рдПрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рднрд┐рдЬреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдХрд╛рдо рдЧрд░реНрджрдЫ;

    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" рд░ "рдкрдЯреНрдЯреА" рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрдорд╛ рдердкрд┐рдПрдХреЛ рдЫ рддрд╛рдХрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЦрдгреНрдбрд▓рд╛рдИ рдореЗрдЯрд╛рдЙрдирдмрд╛рдЯ рд░реЛрдХреНрдирдХреЛ рд▓рд╛рдЧрд┐ред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди