代码:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
// to generate numbers
void gen_data(int b[], int n)
{
int i;
for (i = 0; i < n; i++)
b[i] = rand() % 101;
}
// to display numbers
void disp_data(int b[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d \n", b[i]);
}
// insert at desired posn
void insert(int b[], int n, int elt, int pos)
{
int i;
for (i = n - 1; i >= pos; i--)
b[i + 1] = b[i];
b[pos] = elt;
}
// delete an elt at given position
void delete (int b[], int n, int pos)
{
int i;
for (i = pos + 1; i < n; i++)
b[i - 1] = b[i];
}
// driver code
int main()
{
int a[100], pos, n = 10, let;
int opt;
system("cls");
gen_data(a, n);
while (1)
{
printf("\n 1- Insert 2-Delete 3-Display 4-quit\n");
scanf("%d %d", &pos, &elt);
insert(a, n, elt, pos);
n++;
break;
case 2:
printf("enter position at which elt to be deleted: ");
scanf("%d", &pos);
delete (a, n, pos);
n--;
break;
case 3:
printf("the numbers are : \n");
disp_data(a, n);
break;
}
if (opt == 4)
break;
} // end while
}
日志:
Active debugger config: GDB/CDB debugger:Default
Building to ensure sources are up-to-date
Selecting target:
Debug
Adding source dir: C:\Users\Ranju\Desktop\you\lab pro\
Adding source dir: C:\Users\Ranju\Desktop\you\lab pro\
Adding file: C:\Users\Ranju\Desktop\you\lab pro\bin\Debug\lab pro.exe
Changing directory to: "C:/Users/Ranju/Desktop/you/lab pro/."
Set variable: PATH=.;C:\MinGW\bin;C:\MinGW;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C;C:\Users\Ranju\AppData\Local\Microsoft\WindowsApps;C:\Program Files\CodeBlocks\MinGW\bin
Starting debugger: C:\Program Files\CodeBlocks\MINGW\bin\gdb.exe -nx -fullname -quiet -args "C:/Users/Ranju/Desktop/you/lab pro/bin/Debug/lab pro.exe"
done
Setting breakpoints
Debugger name and version: GNU gdb (GDB) 8.1
Starting the debuggee failed: No executable specified, use `target exec'.
Debugger finished with status 0
就我而言,从项目路径中删除空格解决了问题。也许你应该尝试像这样改变路径: “C:/Users/Ranju/Desktop/you/labpro/bin/Debug/lab pro.exe”
我最近在 Windows10 上开始使用 CodeBlocks 时遇到了同样的问题(在我的例子中是 C::B 版本 20.03)。问题是,我在安装 CodeBlocks 之前就已经安装了 MinGW,并且 CodeBlocks 从该路径中获取了
gdb.exe
,而不是从 CodeBlocks 中安装的 MinGW 路径中获取它。
我的解决方案是将 Settings -> Debugger... -> GDB/CDB debugger -> Default 中的默认可执行路径更改为我安装 CodeBlocks 时安装的 gdb.exe
。所以:<C::B_installation_path>\MinGW\bin\gdb.exe
。
修改后问题就解决了。
我不知道这有多相关,但我似乎有相同或相似的问题。请参阅
的材料如何使用“Code::Blocks 20.03”(“mingw”版本)进行调试?
尤其是这句话之后,
I have hopefully made progress towards an answer.
。
我现在已经为上述问题添加了正确的答案..
我假设你已经安装了
MinGW
,在目录C:\MinGW
中。
也许,您自己承担风险,您可以尝试暂时将文件夹
C:\MinGW
重命名为其他名称,然后尝试运行调试器。
当我使用
MinGW
安装Code::Blocks 20.03
时,我预装了codeblocks-20.03mingw-setup.exe
(2021年4月8日版本,接受默认安装)。我在调试时也遇到了问题。现在有一个修复程序,这似乎很普遍,即使没有预安装也适用 MinGW
,请参阅另一个问题的答案(上面提供的链接)。
修复涉及更改调试器设置,但在您的情况下,您似乎正在尝试使用正确的调试器,请参阅您给出的行,如下所示
Starting debugger: C:\Program Files\CodeBlocks\MINGW\bin\gdb.exe -nx -fullname -quiet -args "C:/Users/Ranju/Desktop/you/lab pro/bin/Debug/lab pro.exe"
在上面,您似乎正在尝试使用目录
C:\Program Files\Codeblocks\MinGW\bin
中的调试器,这似乎没问题,而不是来自 C:\MinGW\bin
中的调试器,这是我尝试使用的调试器所在的位置,请参阅另一个问题。
但是,您可能正在使用目录
C:\MinGW
中的调试器以外的其他东西。
无论您是否在
MinGW
中安装了C:\MinGW
,您都可能需要更改Setting
中的一些Code::Blocks
。
我也遇到这个问题了。我目前在 Windows 10 上运行 Code::Blocks 17.12。就我而言,我只是将编译器升级到 Mingw64 位。修复方法:我更改了位于
default.conf
的 c:\users\logonname\appdata\roaming\codeblocks
文件中的条目
目录。复制原始文件后,我将与旧调试器 gdb32.exe
对应的行更改为新目录中的新文件 gdb.exe
。这解决了问题。这是 default.conf
旧行,在进行更改之前:<![CDATA[C:\Program Files (x86)\CodeBlocks\MinGW\bin\gdb32.exe]]>
。
我最近遇到了这个bug,当我开始使用codeblocks学习C时。我做了四个步骤(孤立的,没有一个解决问题):
1-我检查了调试器和编译器的路径和版本,以确保它们是正确的;
2- 确保 PC 上没有安装其他版本的 MinGW(仅保留与代码块一起安装的版本);
3- 重命名该项目,使其中没有空格;
4- 将项目目录更改回 C:\Program Files(位于辅助硬盘上)。
它对我有用。