gpt4 book ai didi

Cygwin 中的 GDB 是否缺少 sigfe.s?

转载 作者:行者123 更新时间:2023-12-04 13:23:40 28 4
gpt4 key购买 nike

在为学校完成一些编程作业后,我决定开始从事一些我想到的副业项目。我决定在 Windows 上安装 vim 并使用 Cygwin 正确链接它。我首先安装了 gcc 和 gdb,以尝试查看是否一切正常。我制作了一个包含一些 printf 的快速 C 文件,因此我可以使用 gdb 进入它们。

我可以在 main 中设置断点,运行程序,得到第一个 printf,但是当我尝试进入下一行时,出现错误。

(gdb) step
_sigfe_puts () at sigfe.s:7019
7019 sigfe.s: No such file or directory.

我以为我没有正确安装 gdb,所以我重新安装了,但没有成功。我尝试使用 UltraGDB 看看它是否有帮助,但同样的事情发生了,这次给了我一个更清晰的错误。

Can't find a source file at "C:/cygwin64/cygwin/src/cygwin/cygwin-2.8.0/cygwin-2.8.0-1.x86_64/build/x86_64-pc-cygwin/winsup/cygwin/sigfe.s" 
Locate the file or edit the source lookup path to include its location.

我怀疑它与权限有关,所以我试图查找该目录,结果发现它确实不存在。 C:/cygwin64/没有 cygwin 文件夹,更不用说名为 src 等的子文件夹了。我确实发现在 cygwin64/usr 中有一个名为 x86_64-pc-cygwin 的文件夹,但它根本没有 winsup 文件夹。

我不知道我现在能做什么来修复这个错误,过去几天我一直很烦,而且还没有找到任何修复方法。我假设 GDB 在错误的地方寻找这个文件,但是如果我使用 Cygwin 安装程序可执行文件安装了 gdb 那么它不应该工作吗?任何帮助将不胜感激,谢谢。

完成测试运行错误:

$ gdb ./test
GNU gdb (GDB) (Cygwin 7.10.1-1) 7.10.1
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-cygwin".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./test...done.
(gdb) break main
Breakpoint 1 at 0x1004010ed: file test.c, line 6.
(gdb) run
Starting program: /home/User/test
[New Thread 13236.0x4c0]
[New Thread 13236.0x824]
[New Thread 13236.0x3078]
[New Thread 13236.0x374]

Breakpoint 1, main () at test.c:6
6 printf("Hello\n");
(gdb) step
_sigfe_puts () at sigfe.s:7019
7019 sigfe.s: No such file or directory.
(gdb)
7020 in sigfe.s
(gdb)
7023 in sigfe.s
(gdb)
_sigfe () at sigfe.s:19
19 in sigfe.s
(gdb)
20 in sigfe.s
(gdb)
21 in sigfe.s
.
.
.
(stops responding after various steps)

最佳答案

sigfe.s 是在 cygwin 构建期间动态创建的源文件。

它存在于构建树中:

$ find . -iname "*sigfe*"
./x86_64-unknown-cygwin/winsup/cygwin/sigfe.o
./x86_64-unknown-cygwin/winsup/cygwin/sigfe.s

似乎是唯一具有这种特征的文件

$ find . -iname "*.s"
./x86_64-unknown-cygwin/winsup/cygwin/sigfe.s

理论上应该包含在cygwin-debuginfo包中

$ cygcheck -l cygwin-debuginfo | grep -i "s$"
/usr/src/debug/cygwin-2.8.1-0.1/newlib/libc/machine/x86_64/memcpy.S
/usr/src/debug/cygwin-2.8.1-0.1/newlib/libc/machine/x86_64/memset.S
/usr/src/debug/cygwin-2.8.1-0.1/newlib/libc/machine/x86_64/setjmp.S

您可以在 cygwin 邮件列表上突出显示该问题。 https://cygwin.com/cygwin/lists.html

关于Cygwin 中的 GDB 是否缺少 sigfe.s?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44770147/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com