(gdb) finish Run tillexitfrom#0 PrintNumbers (n=10) at mystrcopy.c:19 number is :9 number is :8 number is :7 number is :6 number is :5 number is :4 number is :3 number is :2 number is :1 number is :0 main(argv=1,argc=0x7fffffffe228) at mystrcopy.c:34 34return0; (...
本科核心内容: info和thread命令 next、step、util、finish和return命令 5.1info和thread命令 在前面使用info break命令查看当前断点时介绍过,info命令是一个复合指令,还可以用来查看当前进程的所有线程运行情况。下面以redis-server进程
return命令(缩写)类似finish,也可以通过"return expression"命令指定函数返回值 Making threadpool with 4 threads 27 threadpool thpool = thpool_init(4); (gdb) s thpool_init (num_threads=32767) at thpool.c:127 127 struct thpool_* thpool_init(int num_threads){ (gdb) n 129 threads_on_hold = ...
finish:运行程序直到函数完成,打印返回的堆栈地址和返回值及参数信息。 util [break_args]:until(u)不带参数跳出循环,break_args同clear中参数。 stepi(si)、nexti(ni),这里的i代表指令级别,其他和step,next相同 观察点 观察点用来观察某个表达式的值是否发生了变化,如果有变化,则马上暂停程序。观察点和断点的一...
return 和 finish 都是退出函数,但也有差别: return 命令是立即退出当前函数,剩下的代码不会执行了,return 还可以指定函数的返回值。 finish 命令是会继续执行完该函数剩余代码再正常退出。 5.12 until命令 以下是GDB对 until 命令的解释:
next、step、util、finish、return 和 jump 命令 info 和 thread 命令 在前面使用 info break 命令查看当前断点时介绍过,info 命令是一个复合指令,还可以用来查看当前进程的所有线程运行情况。下面以 redis-server 进程为例来演示一下,使用 delete 命令删掉所有断点,然后使用 run 命令重启一下 redis-server,等程序正...
3. 使用`finish`命令时,gdb会跳过当前函数和子函数内的所有代码,并且不会停在任何断点处。如果需要在其他地方暂停程序,可以在相应位置设置断点,并使用`continue`命令让程序继续执行。 4. 如果在调试过程中想重新执行一次进入函数的操作,可以使用`return`命令,它能够在不影响当前函数状态和程序运行的情况下,重新执行函...
next和step: 单步调试 next: 单步步过(step over),即遇到函数直接跳过,不进入函数内部 step: 单步步入(step into),即遇到函数会进入函数内部 return和finish: 退出函数命令 return: 立即退出当前函数,剩下的代码不会执行了,return 还可以指定函数的返回值 ...
finish:要退出当前函数并返回到调用函数,请使用命令。 stepi: 步进到某个语句。 advance:继续运行,直到指定的某临时断点。advance 位置标记。 下面是一个从当前位置前进到子函数处的示例: Breakpoint 1, main () at hello.c:15 15 printf("Hello, world!\n"); ...
4 return 2; 函数调用的参数需要在实际的函数调用之前进行处理,bar()函数的参数是num()函数,所以num()会在bar()被调用之前执行。但是,通过 GDB 调试,你怎么才能如愿以偿地进入bar()函数呢?你可以使用finish命令,并再次使用step命令。 (gdb) finish