你可以使用finish命令,并再次使用step命令。 (gdb) finish Run till exit from #0 num () at exmp.c:4 0x0000000000401161 in main () at exmp.c:14 14 bar(num()); Value returned is $1 = 2 (gdb) step bar (i=2) at exmp.c:9 9 printf("i = %d\n", i); 4、tbreak 命令 tbreak...
run:运行程序。 next:单步执行一行代码。 step:单步执行一行代码,如果遇到函数调用,则进入函数。 continue:继续执行程序,直到遇到断点或程序结束。 print:查看变量的值。 backtrace:查看函数调用栈。 4. 示例:使用GDB调试C程序 让我们通过一个简单的示例来演示使用GDB调试C程序: #include<stdio.h>intmain(){inta=5...
(gdb) run (gdb) r 继续执行 continue:继续执行程序,简写为c。 (gdb)continue(gdb) c 单步执行 step:单步执行一行代码,进入函数调用,简写为s。 (gdb) step (gdb) s next:单步执行一行代码,跳过函数调用,简写为n。 (gdb) next (gdb) n 运行到当前函数结束 finish:运行到当前函数结束,简写为fin。 (gdb)...
(1)连续执行程序,直到遇到断点 (gdb)run|r (2)继续执行程序,直到下个断点 (gdb) continue|c (3)执行下一行语句 (gdb)next|n (4)单步进入 (gdb) step|s 这样,也会执行一行代码,不过如果遇到函数的话就会进入函数的内部,再一行一行的执行。执行完当前函数返回到调用它的函数 (5)跳出当前函数 (gdb) finis...
启动命令(run、start) 概述 根据不同场景的需要,GDB 调试器提供了多种方式来启动目标程序,其中最常用的就是 run 指令,其次为 start 指令。也就是说,run 和 start 指令都可以用来在 GDB 调试器中启动程序,它们之间的区别是: 默认情况下,run 指令会一直执行程序,直到 执行结束。如果程序中手动设置有断点,则 run...
(gdb)run|r 1. (2)继续执行程序,直到下个断点 (gdb) continue|c 1. (3)执行下一行语句 (gdb)next|n 1. (4)单步进入 (gdb) step|s 1. 这样,也会执行一行代码,不过如果遇到函数的话就会进入函数的内部,再一行一行的执行。执行完当前函数返回到调用它的函数 ...
函数调用的参数需要在实际的函数调用之前进行处理, bar 函数的参数是 num 函数,所以 num 会在 bar 被调用之前执行。但是,通过 GDB 调试,你怎么才能如愿以偿地进入 bar 函数呢?你可以使用 finish 命令,并再次使用 step 命令。 (gdb)finish Runtillexitfrom#0numat exmp.c:4 ...
run:简记为 r ,其作用是运行程序,当遇到断点后,程序会在断点处停止运行,等待用户输入下一步的命令。 continue (简写c ):继续执行,到下一个断点处(或运行结束) next:(简写 n),单步跟踪程序,当遇到函数调用时,也不进入此函数体;此命令同 step 的主要区别是,step 遇...
运行程序:使用GDB的"run"命令来运行程序。例如,输入"run"。 单步执行函数:当程序运行到断点处时,可以使用GDB的"step"命令来单步执行函数。例如,输入"step"。 查看函数参数:在函数内部执行单步操作时,可以使用GDB的"print"命令来查看函数的参数值。例如,输入"print variable_name",其中"variable_name"是要查看...
run运行程序,使用方式如:r <args> List 显示程序源代码命令,使用show listsize 查看显示代码的行数 list <function/linenum/filename:function/filename:linenum/-/+> ,-向上翻动,+向下翻动 p var/expression(filename::var/function::var),打印变量值 ...