首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何找出节目突然出现不终止的原因,而用“`strace`”终止呢?

如何找出节目突然出现不终止的原因,而用“`strace`”终止呢?
EN

Unix & Linux用户
提问于 2019-05-04 22:28:39
回答 1查看 44关注 0票数 1

我有一个突然开始不终止的程序(我不是在更新程序,而是我的系统&内核,我不记得是什么导致了这种效果。重新编译该计划并没有改变不终止的行为)。然而,在strace下,它确实终止了。

怎样才能追查到这些事情呢?

具体示例:

下面是我遇到这个(对我来说)奇怪的事情的具体例子:

它是关于威沃弗莱SVN修订 2250 (最迟在调查/编写时),根据八月包在Arch/ Artix上编译。

从一段时间以来(没有更新WWWOFFLE,但是更新了系统和内核,并且在这个问题出现后,重新编译WWWOFFLE而没有任何明显的改变),把wwwoffle放到联机或脱机模式下,经常会无限期挂起。如果我想用strace跟踪它,它不会挂起。如果我把它包装在一个shell脚本中,它会用strace挂起,而不是用strace -f/ strace -ff挂起。

详细信息:

  1. 启动wwwoffled服务器:www.offed -c /etc/wwwoffle/wwwoffle.conf -f -d 6
  2. 将WWWOFFLE置于联机模式(从脱机模式切换到在线模式通常成功):www.offle -c /etc/ wwwoffle /wwwoffle.conf -online终端输出: WWWOFFLE现在联机并返回调用shell。
  3. 将WWWOFFLE置于脱机模式:www.offle -c /etc/ wwwoffle /wwwoffle.conf -offline终端输出: WWWOFFLE现在脱机并且没有终止。wwwoffled与数字1对应的日志正确地写着Important: WWWOFFLE Offline。用wwwoffle -c /etc/wwwoffle/wwwoffle.conf -offline中止+,然后再试一次,打印出正确的WWWOFFLE Already Offline,但也不会终止。
  4. 当WWWOFFLE已经联机时,切换到联机模式也不会终止:www.offle -c /etc/ wwwoffle /wwwoffle.conf -online,而WWWOFFLE已经联机,正确地打印出已经联机但没有终止的WWWOFFLE。
  5. strace:strace -c /etc/wwwoffle.conf -offline和strace wwwoffle -c /etc/wwwoffle.conf -online似乎总是在wwwoffled启动时终止。
  6. 如果我将wwwoffle -c /etc/wwwoffle/wwwoffle.conf -offlinewwwoffle -c /etc/wwwoffle/wwwoffle.conf -online放在bash脚本中:#!/bin/bash -c /etc/ wwwoffle /wwwoffle.conf -offline并执行它,那么使用strace也不会终止: strace ./wwwoffle-off.sh打印出的最后一行访问(“/usr/bin/wwwoffle”,R_OK) =0 rt_sigprocmask(SIG_BLOCK,[],8) =0克隆(child_stack=NULL,child_stack=NULL)child_tidptr=0x7f36a75e1e50) = 6426 rt_sigprocmask(SIG_SETMASK,[],NULL,8) =0 rt_sigprocmask(SIG_BLOCK,[],8) =0 rt_sigprocmask(SIG_SETMASK,[],NULL,8) =0 rt_sigprocmask(SIG_BLOCK,[],8) =0 rt_sigaction(SIGINT,{sa_handler=0x5573f5295be0,sa_mask=[],sa_flags=SA_RESTORER,sa_restorer=0x7f36a76898b0},{sa_handler=SIG_DFL,sa_mask=[],sa_flags=SA_RESTORER,sa_restorer=0x7f36a76898b0},8) =0 wait4(-1,WWWOFFLE已经脱机并永远等待在那里。(请注意,WWWOFFLE Already Offline是来自wwwoffle的输出,被写入stdoutstrace的最后一个输出写到stderr,是wait4(-1,)
  7. 使用strace -fstrace -ff (它还跟踪分叉子线程),它将再次终止。

我只看到WWWOFFLE,但它可能不是一个WWWOFFLE-问题。我不知道怎么找到它。怎样才能找到这些东西,是什么导致了这样的行为?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-05-31 12:29:43

这通常是软件内部某种错误的症状,不能给出一般的答案。

因此,它确实是具体的缺陷在具体的软件,显示这样的行为。

在WWWOFFLE-案例中,监听wwwofflewwwoffled之间的网络通信确实揭示了一些信息.

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/517155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档