When I run procstat on a small 32bit app that just calls sleep (on FreeBSD 12.1 amd64) then I see at the end of the map
I think the last block is for signal handlers and the last but one block is the user stack.
But what is between 0xfbffe000 and 0xfffde000? It's a bit less than 64Mbytes. This has no protection flags, no resident pages or references and no type. My guess is that this is some sort of guard page for the user stack.
Can anyone confirm this? Also, does anyone know if this has been present in FreeBSD for a long time? My copy of D&I 2e doesn't show anything between stack and share libraries.
Code:
22353 0xfbffe000 0xfffde000 --- 0 0 0 0 ----- --
22353 0xfffde000 0xffffe000 rw- 3 3 1 0 ---D- df
22353 0xffffe000 0xfffff000 r-x 1 1 94 0 ----- ph
I think the last block is for signal handlers and the last but one block is the user stack.
But what is between 0xfbffe000 and 0xfffde000? It's a bit less than 64Mbytes. This has no protection flags, no resident pages or references and no type. My guess is that this is some sort of guard page for the user stack.
Can anyone confirm this? Also, does anyone know if this has been present in FreeBSD for a long time? My copy of D&I 2e doesn't show anything between stack and share libraries.