Scripting gdb命令文件错误“;无效的类型组合“;在while循环中

Scripting gdb命令文件错误“;无效的类型组合“;在while循环中,scripting,while-loop,gdb,Scripting,While Loop,Gdb,我在gdb命令文件中编写了以下命令 while ($i < 3) s end 但是我得到了一个错误:无效的强制转换。 如何在gdb命令文件中写入循环 注意:i是正在调试的C程序中的变量,在命令文件中称为$i while ($i < 3) s end 我找不到任何例子,这些例子提供了一些关于gdb的参考资料。首先,我认为使用它更合适 watch i >= 3 为了在我超过2岁的时候休息 至于循环,直到C中的局部变量小于3。这是它的gdb脚本: while (i <

我在gdb命令文件中编写了以下命令

while ($i < 3)
s
end
但是我得到了一个错误:
无效的强制转换。

如何在gdb命令文件中写入循环

注意:
i
是正在调试的C程序中的变量,在命令文件中称为$i

while ($i < 3)
s
end

我找不到任何例子,这些例子提供了一些关于gdb的参考资料。

首先,我认为使用它更合适

watch  i >= 3
为了在我超过2岁的时候休息

至于循环,直到C中的局部变量小于3。这是它的gdb脚本:

  while (i < 3) 
    s
  end
while(i<3)
s
结束
<>这在C++代码中演示了GDB循环:

#include <stdio.h>

int main()
{
  for (int i=0; i< 10; ++i) {
    printf ("i: %d\n", i);
  }
  return 0;
}
#包括
int main()
{
对于(int i=0;i<10;++i){
printf(“i:%d\n”,i);
}
返回0;
}
这是一个gdb测试:

D:\>gdb -q a
Reading symbols from D:\a.exe...done.
(gdb) start
Temporary breakpoint 1 at 0x401395: file main.cpp, line 4.
Starting program: D:\a.exe
[New Thread 3780.0x144]

Temporary breakpoint 1, main () at main.cpp:4
4       {
(gdb) n
5         for (int i=0; i< 10; ++i) {
(gdb)
6           printf ("i: %d\n", i);
(gdb) while (i<3)
 >s
 >end
i: 0
5         for (int i=0; i< 10; ++i) {
6           printf ("i: %d\n", i);
i: 1
5         for (int i=0; i< 10; ++i) {
6           printf ("i: %d\n", i);
i: 2
5         for (int i=0; i< 10; ++i) {
6           printf ("i: %d\n", i);
(gdb) p i
$1 = 3
(gdb)
D:\>gdb-qa
从D:\a.exe读取符号…完成。
(gdb)启动
0x401395处的临时断点1:文件main.cpp,第4行。
正在启动程序:D:\a.exe
[新线程3780.0x144]
main.cpp处的临时断点1,main():4
4       {
(gdb)n
5表示(int i=0;i<10;++i){
(gdb)
6 printf(“i:%d\n”,i);
(gdb)while(is)
>结束
i:0
5表示(int i=0;i<10;++i){
6 printf(“i:%d\n”,i);
i:1
5表示(int i=0;i<10;++i){
6 printf(“i:%d\n”,i);
i:2
5表示(int i=0;i<10;++i){
6 printf(“i:%d\n”,i);
(gdb)p i
$1 = 3
(gdb)