xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/doc/stack_frame.txt (revision cef8759bd76c1b621f8eab8faa6f208faabc2e15)
1                  ^    ->|            |
2Frame             |   |  |            |
3Number          - |   |  |============|       int fact (int n)
4               |  |   |  |   i = 3    |       {
5               |  |   |  |------------|         if (0 == n) {
6               |  |   |  |   f = ?    |           return  1;  <-------- PC
7  #4 main()   <   |   |  |------------|        }
8               |  |   |  |            |         else {
9               |  |  -+->|------------|   --->    return n * fact (n - 1);
10               |   -+-+--+-----o      |  |      }
11                =   | |  |============|  |    }
12               |    | |  |   n = 3    |  |
13               |    | |  |------------|  |    main ()
14  #3 fact (3) <     | |  |     o---------+-   {
15               |   -+-+->|------------|  | |    int  i;
16               |  | |  --+-----o      |  | |
17                = | |    |============|  | |    for (i = 0; i < 10; i++) {
18               |  | |    |   n = 2    |  |  ->    int  f = fact (i);
19               |  | |    |------------|  |        printf ("%d! = %d\n", i , f);
20  #2 fact (2) <   | |    |     o------+--|      }
21               |  | |  ->|------------|  |    }
22               |  |  -+--+-----o      |  |
23                = |   |  |============|  |
24               |  |   |  |   n = 1    |  |
25               |  |   |  |------------|  |
26  #1 fact (1) <   |   |  |     o------+--|
27               |  |   |  |------------|  |
28               |   ---|--+-----o      |<-+------- FP
29                =     |  |============|  |                   |
30               |      |  |   n = 0    |  |                   |
31               |      |  |------------|  |                   |
32  #0 fact (0) <       |  |     o---------                    |
33               |      |  |------------|                      |
34               |       --+-----o      |<--------- SP         |
35                =        |============|                      |
36               |         |  Red Zone  |                      v
37               |         \/\/\/\/\/\/\/                 Direction of
38  #-1         <          \/\/\/\/\/\/\/                 stack growth
39               |         |            |
40