ページの先頭行へ戻る
Symfoware Server V10.0.0 トラブルシューティング集

B.3 コアファイルからの原因分析

アプリケーションのプロセスが異常終了した場合

アプリケーションプロセスが異常終了した場合は、コアファイルの情報から、異常終了した原因を調査してください。Symfoware Serverのライブラリで異常が発生したかを確認するには、gdbやfdbなどのデバッガを用いて、以下のように関数トレースを出力してください。

(gdb) bt
#0  0x4004c1b1 in __kill () from /lib/libc.so.6
#1  0x4004be95 in raise (sig=6) at ../sysdeps/posix/raise.c:27
#2  0x4004d60a in abort () at ../sysdeps/generic/abort.c:88
#3  0x401eefe3 in internal_err () at jypeacom.c:3642
#4  0x401eef88 in Cgp_IpbGet (ipb_p=0xbffff3b0 "{\001\002w\017",
ipbexec_p=0xbffff248 "",
    ipbexec_len_p=0xbffff230 "") at jypeacom.c:3608
#5  0x401ee609 in Cgp_CvValToChr (conv_p=0xbffff4a4) at jypeacom.c:3072
#6  0x40203543 in jypeconv (conv_p=0xbffff4a4) at jypeconv.c:440
#7  0x401ae728 in broat (rt0_p=0x805c5ec, work_p=0x400236c0,
var_p=0x806f3f0,
    atr_p=0x8070ad4 "`", data_p=0x807c0ef "+", broat_inf_p=0xbffff53c,
readlen=0xbffff520)
    at jypbroat.c:1412
#8  0x401c13d5 in ssqef (cvt=0x805c1d4) at jypbsqe4.c:1293
#9  0x401c0d81 in ssqe4 (cvt=0x805c1d4) at jypbsqe4.c:830
#10 0x401bf012 in ssqe0 (cvt=0x805c1d4) at jypbsqe0.c:420
#11 0x401b4bfa in sex00 (cvt=0x805c1d4) at jypbsex0.c:931
#12 0x401dac6e in sqldrv (sh_wk_p=0x400236c0, sh_tbl_ptr_ptr=0x40023a48) at
jypbusqd.c:666
#13 0x4001efcf in sqlexe (sql_cd=13, opt=0, sys_addr=0x804c200) at
jypbssqe.c:235
#14 0x80490ef in main ()
#15 0x40045c96 in __libc_start_main (main=0x8048840 <main>, argc=3,
argv=0xbffff824,
    init=0x80485ec <_init>, fini=0x804affc <_fini>, rtld_fini=0x4000a4a0
<_dl_fini>,
    stack_end=0xbffff81c) at ../sysdeps/generic/libc-start.c:92

fdb* t
#0 0xff316dac (_kill + 0x8) (0x0,0x6,0xff332584,0x0,0xffffffff,0x0)
#1 0xff2b93c8 (abort + 0xfc) (0xff332584,0xff10f224,0x30ae8,0x2721c,0x27208,
    0x21180)
#2 0xff05ac90 (bpisd + 0x73c) (0xffffd8f1,0x2edc8,0xff11aaa4,0xff10f224,
    0xff11afc0,0x27268)
#3 0xff059dc8 (bpser + 0xac) (0x1,0x2edc8,0xff11afc0,0xff10f224,0x0,0x283c4)
#4 0xff04b2fc (bpdcn + 0x1f4) (0x27124,0x0,0x2edc8,0xffbee954,0xff10f224,
    0xffbee9a5)
#5 0xff07f414 (scon1 + 0x414) (0x30a3c,0xffbeebe8,0xff10f224,0xffbeebe8,
    0x26744,0xff30a1cc)
#6 0xff07eefc (sdcon + 0x230) (0x26744,0xffbeebe8,0xffffffff,0xffffffff,
    0xff10f224,0x1)
#7 0xff07db5c (skcon + 0x1038) (0x26744,0x30ea4,0x0,0x0,0x1,0xff10f224)
#8 0xff07aad4 (sex00 + 0x1014) (0x26744,0xff1183a8,0x0,0xff10f224,0x0,0x0)
#9 0xff0a7a88 (sqldrv + 0x3a4) (0xff38220c,0x27268,0xff118498,0xff118452,
    0xff11b044,0xff10f224)
#10 0xff36eab0 (sqlexe + 0x8c) (0xff383190,0xff38220c,0xff383174,0xff381550,
    0x211a8,0x0)
#11 0x00010dd4 (bbb + 0x1ac) (0x211a8,0x21336,0xffbef36d,0xff332584,0xff332584,
    0xff33a1a8)
#12 0x00010bec (main + 0x1c) (0x1,0xffbef7d4,0xffbef7dc,0x21000,0x0,0x0)
#13 0x00010b80 (_start + 0xb8) ()

上記の関数トレースの“sqlexe * sqldrv → …”が、Symfoware Serverのライブラリのモジュールです。関数トレースに、この関数が出力されている場合は、Symfoware Serverのライブラリの中で異常終了しています。上記のトレースを基に、利用者が作成したライブラリのCプログラムを調査してください。
それ以外の場合は、ユーザアプリケーション側で異常終了しています。アプリケーションの記述に誤りがありますので、アプリケーションを見直してください。

ファンクションルーチンのプロセスが異常終了した場合

SolarisSolarisの場合

利用者が作成したファンクションルーチンのライブラリ内で異常が発生した場合、一連のメッセージに示された原因の情報を基に、利用者が作成したファンクションルーチンのCプログラムから、異常終了した原因を調査してください。ファンクションルーチンのCプログラムで異常が発生したかを確認するには、adbなどのデバッガを用いて以下のように関数トレースを出力してください。

% adb /opt/FSUNrdb2b/sbin/rdbsfunc core_fnc_14275.020201.091819
core file = core_fnc_14275.020201.091819 -- program ``rdbsfunc'' on platform SUNW,Ultra-4
SIGSEGV: Segmentation Fault
$c
UserFunc001(27478,27528,27528,1,146d4,27478) + 78  
Uprc_Module_Execute(25390,28730,27570,27528,24a88,7f940620) + 51c
Jypvuprc(24a88,7f980010,7f980200,2377c,0,24cb0) + c4
CcrCadAdtMain(24a88,4,7fb3aec4,5,7f980188,7f9801f8) + 28c

備考.FSUNrdb2bパッケージが/opt配下にインストールされた場合の例です


上記の関数トレースの“CcrCadAdtMain”から“Uprc_Module_Execute”までの関数が、Symfoware/RDBのモジュールです。それより上位(例の場合は“UserFunc001”)が、利用者が作成したファンクションルーチンのC関数になります。上記のトレースを基に、利用者が作成したファンクションルーチンのCプログラムを調査してください。
それより下位の場合は、メモリ破壊や使用方法の誤りなどの原因により、Symfoware/RDBのモジュールやOSが正しく動作していないことを意味しています。



LinuxLinuxの場合

利用者が作成したファンクションルーチンのライブラリ内で異常が発生した場合、一連のメッセージに示された原因の情報を基に、利用者が作成したファンクションルーチンのCプログラムから、異常終了した原因を調査してください。ファンクションルーチンのCプログラムで異常が発生したかを確認するには、gdbなどのデバッガを用いて以下のように関数トレースを出力してください。

$ gdb /opt/FJSVrdb2b/sbin/rdbsfunc core_fnc_26257.060306.145243
                     :
(gdb) bt
#0  0x20000000010190a0 in UserFunc001 () from /work1/ryo/tset/ufunc/libufunc.so
#1  0x40000000000053e0 in UserFunc_Execute ()
#2  0x40000000000050a0 in Uprc_Module_Execute ()
#3  0x4000000000002a40 in jypvuprc ()
#4  0x2000000000142ac0 in CcrCadAdtMain () from /work1/ryo/src/BASE/lib/librdbcad.so
#5  0x200000000006d750 in start_thread () from /lib/tls/libpthread.so.0
#6  0x200000000031d930 in __clone2 () from /lib/tls/libc.so.6.1

備考.FJSVrdb2bパッケージが/opt配下にインストールされた場合の例です。


上記の関数トレースの“CcrCadAdtMain”から“Uprc_Module_Execute”までの関数が、Symfoware/RDBのモジュールです。それより上位(例の場合は“UserFunc001”)が、利用者が作成したファンクションルーチンのC関数になります。上記のトレースを基に、利用者が作成したファンクションルーチンのCプログラムを調査してください。

それより下位の場合は、メモリ破壊や使用方法の誤りなどの原因により、Symfoware/RDBのモジュールやOSが正しく動作していないことを意味しています。