Один из способов сделать это - уменьшить размер стека, чтобы он мог произойти раньше.
Вы можете сделать это, потратив фреймов на начало программы, то есть получить трассировку стека, например: f_n, f_ (n-1), ..., f_1, ненужные, ненужные, ..., отходы, как в (в псевдокоде C)
int впустую = 1;
отходы (int n, void (* f) ())
{если (n> 0) отходы (n - 1, f), то еще f ();
впустую + = 1; }
main () {ненужные (N, mainprime); }
где mainprime - это ваш старый main, а N достаточно большой, чтобы достичь желаемого f_1.