Armadilloフォーラム

プロセス消滅

m-miz

2018年4月7日 21時50分

お世話になります。
システム運転中に、プロセス(開発アプリケーションソフト)が突如、消滅します。(PSコマンドにて検出できない。)
開発アプリケーションソフトは、外部I/Oをスレッド群で制御しています。

外部I/Oは、SPIとGPIOの2種類の接続が存在し、以下が接続先です。
SPI接続 :LCDコントローラ(Bus#1/CS#0))及び、FPGA(Bus#1/CS#1))
GPIO接続:Keyコントローラ

開発アプリケーションソフトでは、abort, system(killなど)のコマンドは未実装の為、自ら消滅することはありません。

このようにプロセスが突如、消滅する原因及び、対処方法などご存知でしたらご教授願います。

--
開発環境
ATDE3:Debian GNU/Linux 5.0 (“lenny”)ベース
アプリケーションソフト:C言語(ptherads)

以上、よろしくお願いします。

コメント

中村です。

> 開発アプリケーションソフトでは、abort, system(killなど)のコマンドは未実装の為、自ら消滅することはありません。
>
> このようにプロセスが突如、消滅する原因及び、対処方法などご存知でしたらご教授願います。

不正なメモリアクセスによりセグメンテーションフォルトで
プロセスが落ちる(終了する)など、そのプログラム自身に
問題がある場合もありますが、システム全体のメモリ不足で
OOM-killerで殺されているといういう場合もあります。

coreダンプするように設定して、coreを調べてみてはどうでしょうか?

--
なかむら

中村です。

> coreダンプするように設定して、coreを調べてみてはどうでしょうか?

原因を調べる方法として、他には・・・、
syslogに何か手がかりが記録されている場合もあります。

Armadillo-410とのことですが、
atmark-distを使っている場合はデフォルトのままだと、
ローテートでどんどん消えて行ってしまいます。
私がよくやる方法は、外部の適当なsyslogサーバ、たとえば、
開発に使っているATDEや、常時動かしているCentOSや
Debianのマシンにsyslogを転送しています。

--
なかむら

中村様
ご教授ありがとうございます。
メモリ不足(スタックオーバー含む)について、検証をしてみます。
この度は、早急回答に感謝いたします。

> 中村です。
>
> > 開発アプリケーションソフトでは、abort, system(killなど)のコマンドは未実装の為、自ら消滅することはありません。
> >
> > このようにプロセスが突如、消滅する原因及び、対処方法などご存知でしたらご教授願います。
>
> 不正なメモリアクセスによりセグメンテーションフォルトで
> プロセスが落ちる(終了する)など、そのプログラム自身に
> 問題がある場合もありますが、システム全体のメモリ不足で
> OOM-killerで殺されているといういう場合もあります。
>
> coreダンプするように設定して、coreを調べてみてはどうでしょうか?
>
> --
> なかむら
>