The disassembler output looks like: (fhpd) disassemble [0.0] Dump of assembler code for function: main 0x804840d <main+7>: pushl -0x4(%ecx) [...] 0x8048427 <main+21>: mov 0x4(%ecx),%eax *0x804842a <main+24>: mov 0x4(%eax),%eax 0x804842d <main+27>: mov %eax,(%esp) [...] 0x8048450 <main+4a>: pop %ebp End of assembly dump where as the list output looks like: (fhpd) list [0.0] 43 print(char *what) { 44 while (*what != '\0') { 45 write(1, what, 1); 46 what++; 47 } 48 } 49 50 int 51 main(int argc, char** argv) { 52 // XXX: This forgets to check ARGC. -> 53 print(argv[1]); 54 print("\n"); 55 return 0; 56 } we should be consistent with our pointers. (The list output uses two spaces as the intent is to make use of the columns to mark up additional information such as the presence of breakpoints, or the presence of code (so a breakpoint can be inserted).
This appears to have been fixed as the OP requested as of at least 12.1. I believe this bug should be closed.