调整窗口大小

例子

#include <stdio.h>

void fun1(void)
{
        int i = 0;

        i++;
        i = i * 2;
        printf("%d\n", i);
}

void fun2(void)
{
        int j = 0;

        fun1();
        j++;
        j = j * 2;
        printf("%d\n", j);
}

int main(void)
{
        fun2();
        return 0;
}

技巧

使用gdb图形化调试界面时,可以使用“winheight <win_name> [+ | -]count”命令调整窗口大小(winheight缩写为winwin_name可以是srccmdasmregs)。以调试上面程序为例,这是原始的src窗口大小:

   ┌──a.c──────────────────────────────────────────────────────────────────────────────────────────┐
   │17              j++;                                                                           │
   │18              j = j * 2;                                                                     │
   │19              printf("%d\n", j);                                                             │
   │20      }                                                                                      │
   │21      int main(void)                                                                        22
   │23      {                                                                                      │
   │24              fun2();                                                                        │
B+>│25                                                                                             │
   │                return 0;                                                                      │
   │26      }                                                                                      │
   │27                                                                                            32
   │                                                                                               │
   │                                                                                               │
   │                                                                                               │
   │                                                                                               │
   │                                                                                               │
   └───────────────────────────────────────────────────────────────────────────────────────────────┘
native process 9667 In: main                                                Line: 24   PC: 0x40052b
Usage: winheight <win_name> [+ | -] <#lines>
(gdb) start
Temporary breakpoint 1 at 0x40052b: file a.c, line 24.
Starting program: /home/nan/a

Temporary breakpoint 1, main () at a.c:24

执行“winheight src -5”命令后:

   ┌──a.c──────────────────────────────────────────────────────────────────────────────────────────┐
   │17              j++;                                                                           │
   │18              j = j * 2;                                                                     │
   │19              printf("%d\n", j);                                                             │
   │20      }                                                                                      │
   │21                                                                                             │
   │22      int main(void)                                                                         │
   │23      {                                                                                      │
  >│24              fun2();                                                                        │
   │25              return 0;                                                                      │
   │26      }                                                                                      │
   │27                                                                                             │
   └───────────────────────────────────────────────────────────────────────────────────────────────┘
native process 9667 In: main                                               Line: 24   PC: 0x40052b
Usage: winheight <win_name> [+ | -] <#lines>
(gdb)

可以看到窗口变小了。
接着执行“winheight src +5”命令:

   ┌──a.c──────────────────────────────────────────────────────────────────────────────────────────┐
   │17              j++;                                                                           │
   │18              j = j * 2;                                                                     │
   │19              printf("%d\n", j);                                                             │
   │20      }                                                                                      │
   │21                                                                                             │
   │22      int main(void)                                                                         │
   │23      {                                                                                      │
  >│24              fun2();                                                                        │
   │25              return 0;                                                                      │
   │26      }                                                                                      │
   │27                                                                                             │
   │28                                                                                             │
   │29                                                                                             │
   │30                                                                                             │
   │31                                                                                             │
   │32                                                                                             │
   └───────────────────────────────────────────────────────────────────────────────────────────────┘
native process 9667 In: main                                               Line: 24   PC: 0x40052b
Usage: winheight <win_name> [+ | -] <#lines>
(gdb)

可以看到窗口恢复了原样。
参见gdb手册.

贡献者

nanxiao