2012-02-21 12 views
1

私はsegfaultsというCのPostgreSQLの拡張機能に取り組んでいるので、OS X Lionボックスのコアダンプファイルを見たいと思っています。しかし、/coresにコアファイルがありません。彼らがシステムで有効になっていることが表示されますが、0のサイズに制限されています:OS X Lionでコアダンプを取得するにはどうすればよいですか?

> sysctl kern.coredump    
kern.coredump: 1 
> ulimit -c 
0 

私は、私は、PostgreSQLの起動と停止に使用していて、固執するようだシェルのセッションでulimit -c unlimited設定しようとした:

> ulimit -c 
unlimited 

私が何をするにしても、コアファイルはありません。私はpg_ctl -cでPostgreSQLを開始しています。-cは、PostgreSQLにコアダンプを生成するよう指示しています。しかし、システムには何もない。 Lionにコアファイルをダンプする方法を教えてください。

+0

ちょうどabort()を呼び出し、ulimit -c unlimitedを設定して実行する小さなプログラムを作成して実行すると、Lionの/ coreにコアダンプが生成されます。あなたは迅速な正気チェックとしてそれを行うことができますか?それがうまくいけば、私はPostgreSQLで奇妙なことが起こっていると思われます。あるいは、ulimitとpg_ctlによって開始される最終的な子プロセスの間に何かが入り込んでいると思われます。 –

答えて

1

/core /ディレクトリは、必ずしもライオンに存在するとは限りません。そこになければ、コアを取得しません。あなたはulimitを(あなたのように)設定し、cat(1)のようなプログラムを実行し、SIGQUIT(control-backslash)を終了してコアダンプを得ることができるはずです:

lion:〜user $ ulimit -c unlimited 〜ユーザーの$猫 ^ \ ^ \ 終了:3(コアダンプ) ライオン:〜ユーザーの$のls -l /コア/ 合計716584 -r -------- 1ユーザーユーザー ライオン366891008 6月21日23時35 core.1263 ライオン:〜ユーザー$

テクニカルノートTN2124 http://developer.apple.com/library/mac/#technotes/tn2124/https://stackoverflow.com/a/3783403/225077に雄二によって示唆されているように便利です。

関連する問題