用rust写的有栈协程在linux环境下发生了coredump

可以尝试分析核心转储文件以获取有关崩溃的更多信息。您可以使用 gdb 工具来分析核心转储文件。以下是一个示例命令:

gdb <path_to_binary> <path_to_core_dump_file>

进入 gdb 命令行后,您可以使用 bt 命令获取崩溃时的回溯信息。这将显示崩溃时的调用堆栈,有助于您确定问题的根本原因。

其次,您可以尝试在构建代码时启用调试符号。这将为您提供有关崩溃时代码的更多信息。您可以通过在构建命令中添加 -g 标志来启用调试符号。

最后,您可以尝试在本地 Linux 机器上重现问题,并使用诸如 strace 的工具跟踪系统调用和 valgrind 检测内存错误。这可以帮助您确定可能导致崩溃的任何系统级问题。

1 个赞

最终定位到的根本原因是,由于想用c里epoll_event_t中的data.ptr和data.fd字段,使用了自定义的epoll_event_t结构体,该结构体在epoll_wait后,读出来的fd有问题,导致了coredump。

感谢您的帮助。

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。