Для начала вы можете сделать;
gdb "whatever"
break __libc_start_main
r
, который установит точку останова в коде libc crt0 и позволит вам прерваться перед main, даже если целевой двоичный файл полностью удален
Это приведет вас в рабочее состояние в точке останова перед большинством пользовательских кодов. Затем вы можете сделать один шаг, разбить, сбросить память и т. Д. До вашего сердца.
Это работает на всех платформах, тот факт, что ваш вопрос о IA-32 / x86 не имеет значения.