Я считаю, что раньше это работало идеально, но, возможно, я просто забыл правильный синтаксис.
(gdb) disas main
Dump of assembler code for function main:
0x0000000000001125 <+0>: push rbp
0x0000000000001126 <+1>: mov rbp,rsp
0x0000000000001129 <+4>: mov DWORD PTR [rbp-0x4],edi
0x000000000000112c <+7>: mov QWORD PTR [rbp-0x10],rsi
0x0000000000001130 <+11>: mov eax,0x0
0x0000000000001135 <+16>: pop rbp
0x0000000000001136 <+17>: ret
Теперь я хочу разобрать на 0x0000000000001127, что составляет 1 байт в первой инструкции mov:
(gdb) disas 0x0000000000001127
Dump of assembler code for function main:
0x0000000000001125 <+0>: push rbp
0x0000000000001126 <+1>: mov rbp,rsp
0x0000000000001129 <+4>: mov DWORD PTR [rbp-0x4],edi
0x000000000000112c <+7>: mov QWORD PTR [rbp-0x10],rsi
0x0000000000001130 <+11>: mov eax,0x0
0x0000000000001135 <+16>: pop rbp
0x0000000000001136 <+17>: ret
Он все еще начинает разборку в верхней части главного.
Я также пробовал такие вещи, как main + 1, disas / r и т. Д. Изменилось ли поведение GDB как-то? Я подумал, что, возможно, это связано с тем, что это бинарный файл PIE, но когда я перекомпилирую его с -no-pie, у меня все еще остается проблема из-за чего-то такого простого.
Какой правильный синтаксис?