The call command in GDB allows you to execute functions, modify variables, and evaluate expressions during debugging. It helps test functions, change program states, and interact with the program dynamically without restarting execution.
void print_hello()
{
("hello\n");
printf}
(gdb) call print_hello()
hello
void print_int(int a)
{
("%d\n", a);
printf}
(gdb) call print_int(3)
3
void print_ref_int(int &a)
{
("%d\n", a);
printf}
(gdb) set $ptr = (int*) malloc(sizeof(int))
(gdb) set *$ptr = 3
(gdb) call print_ref_int(*$ptr)
3
void print_pointer_int(int *a)
{
("%d\n", *a);
printf}
(gdb) set $ptr = (int*) malloc(sizeof(int))
(gdb) set *$ptr = 3
(gdb) call print_ref_int(*$ptr)
3