I'm trying to understand how the stack behaves when you use system call execve
to call a new function.
I understand there should be variables argc
, argv
and envp
. The last two should be pointers to the vectors containing the arguments and the environment. Those vectors are also in the stackframe.
I'm trying to understand what else might be in the stackframe. Specifically: Does it follow any know calling convention? Is there a return address? Does it store the old stackpointer, as a function would?