cat /proc/self/maps
покажет начальное расположение стека основного потока. Это может быть неточным по крайней мере по следующим причинам:
- ты не в главной теме
- любая часть программы была построена с опцией
-fsplit-stack
, или вы вызываете библиотеку, которая делает что-то похожее
- вы находитесь в обработчике сигналов, который запрашивает
sigaltstack
стек вместо
- вы делаете странные приемы alloca, как CHICKEN Scheme, чтобы использовать стек как кучу
- ...
Также обратите внимание, что общие области не являются полностью случайными. См. Проект AddressSanitizer, чтобы воспользоваться этим.