Cygwin 终端 GDB 列表功能不起作用

Cygwin Terminal GDB list function not working

我最近下载了带有 gdb、gcc 和 g++ 的 cygwin 终端 32。我写了一个简单的c程序,取名为code.c。它是这样的:

#include <stdio.h>

int main()
{
  int i;
  for(i = 0; i<10; i++)
  {
    printf("Hello, World!\n");
  }
}

首先我打开了 cygwin 终端,导航到适当的目录,然后 运行 命令:

gcc code.c

这工作正常,它在同一目录中创建了一个名为 a.exe 的可执行文件。 然后,我将可执行文件的符号加载到 gdb 中,并使用以下命令初始化 gdb:

gdb -q ./a.exe

这也可以正常工作,因为它说: Reading symbols from ./a.exe...done.

然后我测试了一些gdb的功能

disassemble main 输出了正确的汇编指令,run 正确地 运行 程序。

然而,当我尝试 list 以输出 c 源代码时,我没有收到任何输出,当我输入 list main 时,我收到以下内容:

1        usr/src/debug/cygwin-2.3.1-1/winsup/cygwin/crt0.c: No such file or directory

我的问题是 list 命令之前可以正常工作,但由于某种原因停止了正常工作。我认为这可能是我的 cygwin 安装有问题,或者我手动将 c:\cygwin\bin 添加到我的 windows 路径变量。如有任何帮助或建议,我们将不胜感激。

您需要 gcc -g code.c 来注释调试信息。否则调试器无法工作。

我有一个类似的问题,你必须从 cygwin gcc-debuginfo 或 gdb-debuginfo 或两者安装