gpt4 book ai didi

c - 如何在 C 软件中定义崩溃点

转载 作者:行者123 更新时间:2023-11-30 15:59:28 24 4
gpt4 key购买 nike

首先:为我糟糕的英语道歉。

很抱歉这个新手软件问题,但我迷失了自己的逻辑......

一些背景:

我正在开发一个 C 网络项目,我试图生成一个在增加的时间内接收逐渐增加的 UDP 消息的服务器。我只是尝试在该服务器上创建一个简单的“管理器”,以便在崩溃时能够将报告发送到特定地址。

我想到的是,我将此管理器设置为服务器端的监听器。因此,如果服务器在预定义端口内没有收到任何消息,我认为服务器出现故障。但是,无论如何,这并不是一种确定性的方法。如果该服务器崩溃,我应该指定多长时间? (如果5分钟内端口没有收到消息,是否意味着它正在崩溃?不一定是真的。我可以再次将其增加到10分钟,但再次,这是不合理的和不一致的)

我在想像 gdb 这样的应用程序如何做到这一点。如果服务器(框架)崩溃,它会自动生成一个 coredump 文件。我需要做类似的事情,所以当框架崩溃时,它就像打印“hello crash”一样简单。如何在服务器上创建一个“管理器”,以便在服务器崩溃时向我提供报告(使用 C )

任何想法将不胜感激

非常感谢

最佳答案

进程的退出代码告诉您信号是否导致其退出。您可以编写一个 C 程序并使用 wait() 获取退出代码或在 shell 脚本中执行此操作:

#!/bin/sh

./server "$@"

EXIT=$?

if [ $EXIT -eq 0 ]
then
echo exit success
else
if [ $EXIT -ge 128 ]
then
echo exited with signal $(($EXIT - 128))
else
echo exited with code $EXIT
fi
fi

您可以选择针对失败情况或信号情况重新启动服务器。

大多数服务器依赖于仔细的调试,并且不希望在崩溃时自动捕获并重新启动。

关于c - 如何在 C 软件中定义崩溃点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8918761/

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