Выпуск GNU Binutils 2.34

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ Ρ€Π΅Π»ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° систСмных ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ GNU Binutils 2.34, Π² состав ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ входят Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠ°ΠΊ GNU linker, GNU assembler, nm, objdump, strings, strip.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сСрвиса debuginfod, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ собой HTTP-сСрвСр для ΠΎΡ‚Π΄Π°Ρ‡ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ELF/DWARF ΠΈ исходных тСкстов. ΠŸΡ€ΠΈ сборкС Binutils с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ debuginfod, ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ readelf ΠΈ objdump ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΊ сСрвСрам debuginfod для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…. Для сборки binutils с debuginfod Π² скриптС configure слСдуСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ «—with-debuginfod» ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ libdebuginfod, поставляСмой Π² Π½Π°Π±ΠΎΡ€Π΅ elfutils;
  • Π’ дизассСмблСр (objdump —disassemble) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—visualize-jumps» для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ascii-Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ с Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ², наглядно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΉ связи ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈ источником ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² ΠΏΠΎΡ‚ΠΎΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄. Визуализация Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ x86, x86_64 ΠΈ ARM;

    c6: | | \———-> be 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: | \————|—-> 48 89 da mov %rbx,%rdx
    e6: | | be 00 00 00 00 mov $0x0,%esi
    eb: | \—— eb de jmp cb
    ed: \——————-> 48 8b 16 mov (%rsi),%rdx

  • Π’ ассСмблСр ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ELF-Ρ„Π°ΠΉΠ»ΠΎΠ² для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Z80 (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ процСссоры Zilog Z180 ΠΈ Zilog eZ80 Π² Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… ADL ΠΈ Z80);
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ «ar» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—output» для опрСдСлСния ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° для извлСчСния ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²Π°;
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ «objcopy» ΠΈ «strip» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция «—keep-section» для прСдотвращСния удалСния ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ сСкции.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru