[pgsql-jp: 28781] Re: 空文字列を含むテーブルの\copy/pg_dump が失敗する

Yasuo Ohgaki yohgaki @ ohgaki.net
2003年 1月 26日 (日) 19:19:18 JST


大垣です。

naoki kishida wrote:
>>何か特別な要因があるかもしれないのでバックエンドが落ちたときのバック
>>トレースを見せていただけませんか?
> 
> 
> すみません、バックトレースの見方がわかりません。
> よろしければ教えていただけませんか?
> 
> OSはVine2.5です。

coreファイル(コアダンプファイルがあるなら簡単で

gdb -c core
% bt

# bt fullの方が嬉しいかも?
# gdb -c core <path_to_postgres>/postgres
# とする必要があるかも知れません。
# RPMの場合、完全にシンボルがストリップされていて
# ないこともあるので、その場合はソースからビルドす
# る必要があります。

でバックトレースがとれます。たしかPostgreSQLは-g
オプションを付けてコンパイルしていないので、

CFLAGS=-g ./configure

として、コンフィグ時にコンパイルオプションを渡せた
と思います。こうすると、もう少し詳しいバックトレース
がとれます。

# Makefileを変更すればいいのですが、PostgreSQL
# のビルドシステムの場合、この方法は手間が多そう...

coreファイルがない場合や場所が分からない場合は、DB
接続を作ってpostgresプロセスを作ってからPIDを確認
し、gdbプロンプトから

attach PID

でプロセスをアタッチしてからsegfaultさせます。
segfaultした時点で、btコマンドを実行するとバック
トレースがとれます。

# 普段、PostgreSQLはデバッグしないのでもっとスマート
# 方法がありそうですが、どうでしょう?

--
Yasuo Ohgaki






pgsql-jp メーリングリストの案内