実行中のプロセスのメモリをダンプする

スポンサーリンク

実行中のプロセスが使用しているメモリをダンプできる夢のようなツール、gcore を CentOS 5.5 で使用する方法のメモ。

スポンサーリンク

手順

  1. gdb をインストールする。
    # yum -y install gdb
  2. メモリをダンプしたいプロセスのプロセス ID を調べる。今回は Apache を例とする。
    # ps -aux |grep httpd
    root      2740  0.0  1.6  24828  8436 ?        Ss   May25   0:01 /usr/sbin/httpd
    apache    2762  0.0  1.0  25024  5468 ?        S    May25   0:00 /usr/sbin/httpd
    apache    2763  0.0  1.0  24964  5296 ?        S    May25   0:00 /usr/sbin/httpd
     :

    目的のプロセス ID は 2740 であることがわかった。

  3. メモリをダンプする。
    # gdb
    (gdb) attach <プロセスID>
    (gdb) gcore <出力先ファイル名>
    (gdb) detach
    (gdb) quit

出力されたファイルをバイナリエディタで開けば、メモリの中身が表示できる。

コメント

タイトルとURLをコピーしました