join(); return 0; } 上述代码比较简单: 函数fun_int的功能是休眠10s,然后打印其参数 函数fun_string功能是休眠10s,然后打印其参数 main函数中,创建两个线程,分别执行上述两个函数 下面是一个完整的调试过程: 代码语言:javascript 代码运行次数:0 运行 AI代码解释 (gdb) b 27 Breakpoint 1 at 0x4013d5: ...
命令作用set step-mode on不跳过不含调试信息的函数,可以显示和调试汇编代码finish执行完当前函数并打印返回值,然后触发中断return 0不再执行后面的指令,直接返回,可以指定返回值call printf("%s\n", str)调用printf函数,打印字符串(可以使用call或者print调用函数)print func()调用func函数(可以使用call或者print调用...
5.11 return、finish命令 return 和 finish 都是退出函数,但也有差别: return 命令是立即退出当前函数,剩下的代码不会执行了,return 还可以指定函数的返回值。 finish 命令是会继续执行完该函数剩余代码再正常退出。 5.12 until命令 以下是GDB对 until 命令的解释: (gdb) help until Execute until the ...
AI代码解释 #include<stdio.h>int nGlobalVar=;inttempFunction(int a,int b){printf("tempFunction is called, a = %d, b = %d \n",a,b);return(a+b);}intmain(){int n;n=;n++;n--;nGlobalVar+=;nGlobalVar-=;printf("n = %d, nGlobalVar = %d \n",n,nGlobalVar);n=tempFunction...
\n", argv[1]); return 0; } 调试结果如下: tb 测试案例 可以看到,自 tbreak 8 开始断点后,后续循环过程没有在被断住,整个循环一次性执行完毕,是因为断点采用的是 tbreak 命令,因此断点的作用只起 1 次; rbreak 和break 和 tbreak 命令不同,rbreak 命令的作用对象是 C、C++ 程序中的函数,它会在...
(n > 0) { printf("%d\n", n); n--; }}void printNum1(int n) { if (n < 0) return; int i = 1; while (i <= n) { printf("%d\n", i); i++; }}编译运行:$ gcc -g -o main main.c test.c$ chmod +x main$ ./mainit will print from 5 to 1...
4 int add(int a, int b) 5 { 6 int c = a * b; 7 return c; 8 } 9 int main(void) 10 { (gdb) l 11 int a = 13; 12 int b = 57; 13 printf("it will calc a * b\n"); 14 int c = add(a,b); 15 printf("%d*%d = %d\n",a,b,c); 16 return 0; 17 } (gdb...
10 return sum; 11 } 12 13 14 main() 15 { 16 int i; 17 long result = 0; 18 for(i=1; i<=100; i++) 19 { 20 result += i; 21 } 22 23 printf("result[1-100] = %d", result ); 24 printf("result[1-250] = %d", func(250) ); ...
7 return 0; (gdb) next 8 } (gdb) next 0xb7d6c6a5 in __libc_start_main () from /lib/libc.so.6 (gdb) next Single stepping until exit from function __libc_start_main, which has no line number information. Program exited normally. ...
next、step、util、finish、return 和 jump 命令 info 和 thread 命令 在前面使用 info break 命令查看当前断点时介绍过,info 命令是一个复合指令,还可以用来查看当前进程的所有线程运行情况。下面以 redis-server 进程为例来演示一下,使用 delete 命令删掉所有断点,然后使用 run 命令重启一下 redis-server,等程序正...