アップデート一覧に戻る
New releaseSep 11, 2026

ProcDump-for-Linux v3.5.3

ProcDump Sysinternals ツールの Linux バージョン

共有

ProcDump Build Status

ProcDump は、Windows 用の Sysinternals ツールスイートに含まれるクラシックな ProcDump ツールを Linux および Mac 向けに再構築したものです。ProcDump は、パフォーマンストリガーに基づいてアプリケーションのコアダンプを作成する便利な方法を Linux および Mac の開発者に提供します。Linux および Mac 向けの ProcDump は Sysinternals の一部です。

ProcDump使用中

インストールと使い方

要件

  • 最小 Linux OS:
    • Red Hat Enterprise Linux / CentOS 7
    • Fedora 29
    • Ubuntu 16.04 LTS
    • gdb >= 7.6.1
  • 最小 Mac OS: Sierra

ProcDumpのインストール

インストール手順はこちらをご覧ください。

ビルド

ビルド手順はこちらをご覧ください。

使用方法

互換性のない変更 ProcDump 1.3 のリリースにより、スイッチが Windows 版 ProcDump と統一されました。 Mac 版は現在、限られたトリガーしかサポートしていないことに注意してください。

Capture Usage:
   procdump [-n Count]
            [-s Seconds]
            [-c|-cl CPU_Usage]
            [-m|-ml Commit_Usage1[,Commit_Usage2...]]
            [-gcm [<GCGeneration>: | LOH: | POH:]Memory_Usage1[,Memory_Usage2...]]
            [-gcgen Generation]
            [-restrack [nodump]]
            [-sr Sample_Rate]
            [-tc Thread_Threshold]
            [-fc FileDescriptor_Threshold]
            [-sig Signal_Number1[,Signal_Number2...]]
            [-e]
            [-f Include_Filter,...]
            [-fx Exclude_Filter]
            [-mc Custom_Dump_Mask]
            [-pf Polling_Frequency]
            [-o]
            [-log syslog|stdout]
            {
             {{[-w] Process_Name | [-pgid] PID} [Dump_File | Dump_Folder]}
            }

Options:
   -n      Number of dumps to write before exiting.
   -s      Consecutive seconds before dump is written (default is 10).
   -c      CPU threshold above which to create a dump of the process.
   -cl     CPU threshold below which to create a dump of the process.
   -m      Memory commit threshold(s) (MB) above which to create dumps.
   -ml     Memory commit threshold(s) (MB) below which to create dumps.
   -gcm    [.NET] GC memory threshold(s) (MB) above which to create dumps for the specified generation or heap (default is total .NET memory usage).
   -gcgen  [.NET] Create dump when the garbage collection of the specified generation starts and finishes.
   -restrack Enable memory leak tracking (malloc family of APIs). If used without other triggers, use 't' to manually capture a restrack report. When used with other triggers, the 'nodump' option can be used to prevent dump generation and only produce restrack report(s).
   -sr     Sample rate when using -restrack.
   -tc     Thread count threshold above which to create a dump of the process.
   -fc     File descriptor count threshold above which to create a dump of the process.
   -sig    Comma separated list of signal number(s) during which any signal results in a dump of the process.
   -e      [.NET] Create dump when the process encounters an exception.
   -f      Filter (include) on the content of .NET exceptions (comma separated). Wildcards (*) are supported.
   -fx     Filter (exclude) on the content of -restrack call stacks. Wildcards (*) are supported.
   -mc     Custom core dump mask (in hex) indicating what memory should be included in the core dump. Please see 'man core' (/proc/[pid]/coredump_filter) for available options.
   -pf     Polling frequency.
   -o      Overwrite existing dump file.
   -log    Writes extended ProcDump tracing to the specified output stream (syslog or stdout).
   -w      Wait for the specified process to launch if it's not running.
   -pgid   Process ID specified refers to a process group ID.

リソース追跡

-restrack スイッチはリソース追跡を有効にし、コアダンプ生成時点で解放されていないリソース割り当てを監視・報告します。結果は '.restrack' 拡張子のファイルに保存されます。現在、以下のリソース割り当て/解放関数が追跡されます。

割り当て:

  • malloc
  • calloc
  • realloc
  • reallocarray
  • mmap

解放:

  • free
  • munmap

Mac 版は現在リソース追跡を実装していません。

以下の例はすべて、pid == 1234 のプロセスを対象としています。

次のコマンドは、すぐにコアダンプを作成します。

sudo procdump 1234

次のコマンドは、10 秒間隔で 3 つのコアダンプを作成します。

sudo procdump -n 3 1234

次のコマンドは、5 秒間隔で 3 つのコアダンプを作成します。

sudo procdump -n 3 -s 5 1234

次のコマンドは、CPU 使用率が 65% 以上のたびにコアダンプを作成します(最大 3 回、各ダンプの間隔は少なくとも 10 秒)。

sudo procdump -c 65 -n 3 1234

次のコマンドは、CPU 使用率が 65% 以上のたびにコアダンプを作成します(最大 3 回、各ダンプの間隔は少なくとも 5 秒)。

sudo procdump -c 65 -n 3 -s 5 1234

次のコマンドは、CPU 使用率が範囲 [10,65] 外の場合にコアダンプを作成します。

sudo procdump -cl 10 -c 65 1234

次のコマンドは、CPU 使用率が 65% 以上、またはメモリ使用量が 100 MB 以上の場合にコアダンプを作成します。

sudo procdump -c 65 -m 100 1234

次のコマンドは、メモリ使用量が 100 MB 以上になったときにコアダンプを作成し、その後 200 MB 以上になったときにもう一度ダンプを作成します。

sudo procdump -m 100,200 1234

次のコマンドは、ユーザーが 't' を押すたびにメモリリークレポートを生成します(ダンプは作成されません)。

sudo procdump -restrack 1234

次のコマンドは、5 秒間隔で 3 つのメモリリークレポートを生成します(ダンプは作成されません)。

sudo procdump -n 3 -s 5 -restrack nodump 1234

次のコマンドは、メモリ使用量が 100 MB 以上の場合にコアダンプとメモリリークレポートを作成します。

sudo procdump -m 100 -restrack 1234

次のコマンドは、メモリ使用量が 100 MB 以上の場合にメモリリークレポートを生成します(ダンプは作成されません)。

sudo procdump -m 100 -restrack nodump 1234

次のコマンドは、10 回のメモリ割り当てごとに 1 回のサンプリングで、メモリ使用量が 100 MB 以上の場合にコアダンプとメモリリークレポートを作成します。

sudo procdump -m 100 -restrack -sr 10 1234

次のコマンドは、メモリ使用量が 100 MB 以上の場合にコアダンプとメモリリークレポートを作成し、文字列 "cache" を含むフレームがあるコールスタックを除外します。

sudo procdump -m 100 -restrack -fx *cache* 1234

次のコマンドは、.NET の合計メモリ使用量が 100 MB 以上になったときにコアダンプを作成し、その後 200 MB 以上になったときにもう一度ダンプを作成します。

sudo procdump -gcm 100,200 1234

次のコマンドは、ジェネレーション 1 の .NET メモリ使用量が 1 MB 以上になったときにコアダンプを作成し、その後 2 MB 以上になったときにもう一度ダンプを作成します。

sudo procdump -gcm 1:1,2 1234

次のコマンドは、.NET Large Object Heap のメモリ使用量が 100 MB 以上になったときにコアダンプを作成し、その後 200 MB 以上になったときにもう一度ダンプを作成します。

sudo procdump -gcm LOH:100,200 1234

次のコマンドは、.NET のジェネレーション 1 のガベージコレクションの開始時と終了時にコアダンプを作成します。

sudo procdump -gcgen 1

次のコマンドは、/tmp ディレクトリにすぐにコアダンプを作成します。

sudo procdump 1234 /tmp

次のコマンドは、現在のディレクトリに dump_0.1234 という名前でコアダンプを作成します。-n を使用すると、ファイル名は dump_0.1234、dump_1.1234 のようになります。

sudo procdump 1234 dump

次のコマンドは、SIGSEGV が発生したときにコアダンプを作成します。

sudo procdump -sig 11 1234

次のコマンドは、SIGSEGV が発生したときに、匿名のプライベートマッピングのみを含むコアダンプを作成します。

sudo procdump -mc 1 -sig 11 1234

次のコマンドは、対象の .NET アプリケーションが System.InvalidOperationException をスローしたときにコアダンプを作成します。

sudo procdump -e -f System.InvalidOperationException 1234

include フィルターは部分一致およびワイルドカード一致をサポートしているため、次のコマンドでも System.InvalidOperationException に対してコアダンプが作成されます。

sudo procdump -e -f InvalidOperation 1234

または

sudo procdump -e -f "*Invali*Operation*" 1234

すべてのオプションは、-w と組み合わせて使用することもでき、指定した名前のプロセスが起動するのを待機します。

次のコマンドは、my_application という名前のプロセスを待機し、見つかったらすぐにコアダンプを作成します。

sudo procdump -w my_application

現在の制限事項

  • 現在、Linux カーネルバージョン 3.5 以上、または macOS Sierra 以上でのみ動作します。
  • Windows 版 ProcDump との完全な機能互換性はありません。具体的には、生存維持機能やカスタムパフォーマンスカウンターが不足しています。

フィードバック

  • StackOverflow で質問してください(ProcDumpForLinux タグを付ける)
  • GitHub で新機能をリクエストする
  • 人気の機能リクエストに投票する
  • GitHub Issues でバグを報告する

コントリビューション

問題の修正やコードベースへの直接的なコントリビューションにご興味がある場合は、コントリビューション方法 のドキュメントをご覧ください。このドキュメントでは以下の内容をカバーしています。

  • ソースからのビルドと実行方法
  • デバッグやテストの実行を含む開発ワークフロー
  • コーディングガイドライン
  • プルリクエストの提出

行動規範 もあわせてご確認ください。

ライセンス

Copyright (c) Microsoft Corporation. All rights reserved.

MITライセンスの下で提供されています。

Linux 向け ProcDump:

カテゴリ