GDBコマンドを用いてcoredumpファイルの解析を行いたいと思っています。
◆背景
現在CentOS6、PHP5.2、Apache2.4.29等の環境です。
最近Apache2.2系からアップグレードを行ったところ、
Apacheのerror_logにて、
Segmantation fault が多発しており、原因を探りたいと
調査していたところで、コアダンプの取得にたどり着きました。
コアダンプの取得は出来たのですが、
GDBコマンドの使い方は我流となっているため、
有識者の方にアドバイスを頂ければと思っています。
◆入力コマンド
gdb httpd <コアダンプファイル>
◆出力内容の後半部分
Reading symbols from /usr/lib/libxml2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libxml2.so.2
Reading symbols from /usr/local/php-5.2.5/lib/php/extensions/no-debug-zts-20060613/curl.so...done.
Loaded symbols for /usr/local/php-5.2.5/lib/php/extensions/no-debug-zts-20060613/curl.so
Reading symbols from /usr/local/lib/libcurl.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/local/lib/libcurl.so.4
Reading symbols from /usr/local/php-5.2.5/lib/php/extensions/no-debug-zts-20060613/apc.so...done.
Loaded symbols for /usr/local/php-5.2.5/lib/php/extensions/no-debug-zts-20060613/apc.so
Core was generated by `/usr/local/apache2/bin/httpd -k start'.
Program terminated with signal 11, Segmentation fault.
'#0 0x0962d978 in zend_str_tolower_dup (execute_data=0xbf1e30d0, tsrm_ls=0xa0043b0) at /usr/local/src/php-5.2.17/Zend/zend_operators.h:287
287 return zend_str_tolower_copy((char *)emalloc(length+1), source, length);
◆質問(以下の理解で正しいでしょうか?違う場合、ご教授願います。)
①上記はhttpdを実行した際に、読み込んでいるmoduleが順に読み込まれ(Reaing)、ロードされている(Loaded)と認識しています。
②異常を示しているのは、「Core was generated by~」の上の行のapc.soのロードで異常が起きているという認識です。
③#0以降の文章が、エラーの詳細だと思っています。原因のファイルが「zend_operators.h」であり、return以降がその行の内容を表示していると思っています。
(※理解が正しいとなると、なぜ、/usr/local/src/以下のファイルを読みに行っているのかが分からない状態です。)
以上になります。
GDBコマンド出力結果の読み方が正しいかを教授願います。
※については、アドバイス頂けるようであればお願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/12 11:54