Armadilloフォーラム

CoreDump

sakashita_spc

2018年12月14日 21時14分

CoreDumpを生成したいのですが、

ulimit -c unlimited

をシェルから実行して、SegmentFaultになるアプリを実行すると、CoreDumpが生成されます。

この
ulimit -c unlimited
を起動スクリプトに記述したいのですが、どこに記述すればいいでしょうか?

/etc/config/rc.local
の最後に追加して、システムを再起動して、アプリを実行しても、反映されていませんでした。

よろしくお願いします。

コメント

中村です。

> ulimit -c unlimited
> を起動スクリプトに記述したいのですが、どこに記述すればいいでしょうか?
>
> /etc/config/rc.local
> の最後に追加して、システムを再起動して、アプリを実行しても、反映されていませんでした。

コアダンプを生成してほしいプログラムはどうやって起動していますか?

--
なかむら

中村様
ありがとうございます。

>
> コアダンプを生成してほしいプログラムはどうやって起動していますか?
>

現在、実験的にはやっている方法は、シェル(busybox)からですが、最終的には、
/etc/config/rc.local あるいは /etc/inittab を考えています。

起動方法によって異なりますでしょうか?

中村です。

> 現在、実験的にはやっている方法は、シェル(busybox)からですが、最終的には、
> /etc/config/rc.local あるいは /etc/inittab を考えています。
>
> 起動方法によって異なりますでしょうか?

ulimit -c unlimited を実行したシェルから起動したコマンドだけになります。

rc.localから起動する場合は、rc.localに書いておけばよさそうに思います。
/etc/inittabの場合は、適当なシェルを経由するとか・・・
840の動作環境でシステム全体でulimit設定が有効なるようにする方法が
あるといいのですが、わからない(知らない)です。

Ubuntoだとこんな機能があるようですが、840にはないですね。
http://manpages.ubuntu.com/manpages/bionic/ja/man5/initscript.5.html

--
なかむら

ありがとうございます。

検索したら、/etc/profileに書けば、少し進みそうです。

いろいろ模索してみます。

中村です。

> 検索したら、/etc/profileに書けば、少し進みそうです。

ログインしないrc.localやinittabでも
/etc/profileを読んでくれますか?

--
なかむら

>ログインしないrc.localやinittabでも
>/etc/profileを読んでくれますか?

駄目そうです。なので、
setrlimit()
が使えそうなので、そちらを使いことにします。

ありがとうございます。

中村です。

> setrlimit()
> が使えそうなので、そちらを使いことにします。

setrlimit()のmanに次の記述があります。

注意
  fork(2)で作成された作成された子プロセスは、親プロセスのリソース制限
  を継承する。 execve(2)の前後でリソース制限は保存される。

--
なかむら

中村です。

> > setrlimit()
> > が使えそうなので、そちらを使いことにします。
>
> setrlimit()のmanに次の記述があります。
>

> 注意
>   fork(2)で作成された作成された子プロセスは、親プロセスのリソース制限
>   を継承する。 execve(2)の前後でリソース制限は保存される。
> 

を投稿した直後に気づきました。

コアダンプしてほしいプログラムが自分で
setrlimit()を実行するということですね。
なら大丈夫だと思います。

--
なかむら