Если процесс все еще имеет действительный стек, вы можете вызвать функцию sbrk
из libc:
(gdb) print ((void *(*) (unsigned long)) sbrk)(0)
$1 = (void *) 0x55555580e000
Приведение не требуется, если GDB смог загрузить отладочную информацию для libc.
(Это может не работать для статически связанных двоичных файлов, если sbrk
вообще не связан с программой.)
В принципе, это работает с любой функцией, для которой GDB может найти символ.Но безопасно ли вызывать конкретную функцию из GDB, зависит от того, где именно остановилась программа (например, вызов malloc изнутри malloc - это обычно плохая идея).