По време на една от моите (FWIW, ARM) сесии за отстраняване на грешки забелязах, че изходът за разглобяване с преплитане на източника от GDB и objdump -S
се различава по интересен начин: objdump
изглежда прескача през отделни/група инструкции и показва изходния ред, от който са генерирани тези инструкции ( ред на инструкции). Разглобяването на GDB, от друга страна, изглежда прескача през линиите на източника и изброява всички инструкции за асемблиране, генерирани от тази линия източник (ред на източника).
За код -O0
изходът от двете програми ще изглежда по същия начин. Но за оптимизиран код разглобяването на GDB е по-полезно, тъй като събира всички тези иначе разпръснати инструкции на едно място, така че е лесно да се види какво се генерира само от този изходен ред (очевидно в този случай адресите на инструкции не биха бъдете непрекъснати).
Мисля, че и двете форми са полезни сами по себе си. Въпросът ми е дали поведението на дисплея на двете програми може да се конфигурира. IOW, мога ли да кажа на GDB да показва като objdump
или да кажа на objdump
да показва като GDB? Също така, има ли други инструменти, които могат да изпълнят това постижение?
TIA.