Можно ли сделать, чтобы GCC (c++) генерировал ассемблерный код с комментариями вида: # i ++; inc %rax # function(); call function ?
-fverbose-asm Зачем -g непонятно. Про остальное не совсем понял. Ты ведь опции ассемблеру передавать пытаешься? Но ему ничего не надо передавать, ибо он даже не запустится, если gcc вызывается для компиляци в asm.
Код (Text): .L17: .loc 1 37 0 movl -12(%ebp), %eax # dyn, dyn movl (%eax), %eax # <variable>.d_tag, D.2531 cmpl $14, %eax #, D.2531 jne .L18 #, .loc 1 38 0 movl -12(%ebp), %eax # dyn, dyn movl 4(%eax), %eax # <variable>.d_un.d_val, <variable>.d_un.d_val movl %eax, -8(%ebp) # <variable>.d_un.d_val, name Как-то оно не очень вразумительно получается... (gcc version 4.1.2) (-g) откуда взять собственно "исходник" для комментированного листинга? (-Wa) - man as получается где-то так: Код (Text): 120 00d1 744E je .L14 36:findlibc-bf.c **** while (dyn->d_tag != DT_NULL) { 121 .loc 1 36 0 122 00d3 EB2A jmp .L16 123 .L17: 37:findlibc-bf.c **** if (dyn->d_tag == DT_SONAME) 124 .loc 1 37 0 125 00d5 8B45F4 movl -12(%ebp), %eax 126 00d8 8B00 movl (%eax), %eax 127 00da 83F80E cmpl $14, %eax 128 00dd 7509 jne .L18 38:findlibc-bf.c **** name = dyn->d_un.d_val; 129 .loc 1 38 0 130 00df 8B45F4 movl -12(%ebp), %eax 131 00e2 8B4004 movl 4(%eax), %eax 132 00e5 8945F8 movl %eax, -8(%ebp) 133 .L18: 39:findlibc-bf.c **** if (dyn->d_tag == DT_STRTAB) 134 .loc 1 39 0 135 00e8 8B45F4 movl -12(%ebp), %eax 136 00eb 8B00 movl (%eax), %eax