Cygwin 调试错误。
我有一个 Windows 内置的可执行文件。 我想将该 .exe 传递到由 Cygwin(DOS 版本)构建的输出文件。 到目前为止一切进展顺利,之后显示与 Cygwin dll 文件相关的以下错误(ACL 检查)。
Program received signal SIGSEGV, Segmentation fault.
0x6108829e in cygwin1!aclcheck () from /usr/bin/cygwin1.dll
(gdb)
为什么我会收到此错误?我应该在哪里查看?
I have an executable built in Windows. I want to pass that .exe to an output file built by Cygwin (DOS version). It is going well up to a point, after which it is showing the following error related to Cygwin dll files (ACL check) .
Program received signal SIGSEGV, Segmentation fault.
0x6108829e in cygwin1!aclcheck () from /usr/bin/cygwin1.dll
(gdb)
Why am I getting this error and where should I look?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
检查你的代码。 由于您已经在使用 gdb,所以
bt full
将是您的朋友。 您可能传递了错误的参数,例如指向某些系统调用的无效指针。段错误本身很可能不是发生在
aclcheck
处的。 Cygwin DLL 通常不附带内置的调试符号。gdb 从指令指针向后工作并获取先前看到的符号。 在非调试版本中,只有导出函数的符号。Check your code. Since you're already using gdb,
bt full
shall be your friend. You're possibly passing bad parameters such as invalid pointers to some system call.It's likely it's not
aclcheck
where the segfault itself occurs. Cygwin DLLs are normally not shipped with debugging symbols built in. gdb works backwards from the instruction pointer and takes the previous symbol seen. In non-debug builds there are only symbols of exported functions.