Skip to content
A Linux version of the ProcDump Sysinternals tool
C Shell Makefile Roff
Branch: master
Clone or download
jahabibi 1.1 build fix (#70)
* utilize AZDO build number for package generation
Latest commit 08254a4 Dec 13, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github initial commit of procdump Dec 6, 2017
dist 1.1 build fix (#70) Dec 13, 2019
docs
include Added support for .NET Core 3.x+ core dump generation that results in… ( Dec 3, 2019
src
tests/integration Consolidating all development into master branch to simplify contribu… Oct 19, 2018
.gitignore Add a multi-distro spec file to build procdump (#29) Dec 1, 2018
CODE_OF_CONDUCT.md initial commit of procdump Dec 6, 2017
CONTRIBUTING.md Consolidating all development into master branch to simplify contribu… Oct 19, 2018
INSTALL.md updated install docs removing EOL openSUSE 42.3 and added RHEL 8 (#71) Dec 13, 2019
LICENSE
Makefile 1.1 build fix (#70) Dec 13, 2019
README.md
azure-pipelines.yml 1.1 build fix (#70) Dec 13, 2019
procdump.1 prep for 1.1 release (#69) Dec 12, 2019
procdump.gif 1.0.1 Release (#30) Jan 10, 2018

README.md

ProcDump Build Status

ProcDump is a Linux reimagining of the classic ProcDump tool from the Sysinternals suite of tools for Windows. ProcDump provides a convenient way for Linux developers to create core dumps of their application based on performance triggers.

ProcDump in use

Installation & Usage

Requirements

  • Minimum OS:
    • Red Hat Enterprise Linux / CentOS 7
    • Fedora 26
    • Ubuntu 14.04 LTS
  • gdb >= 7.6.1
  • zlib (build-time only)

Install ProcDump

Checkout our install instructions for ditribution specific steps to install Procdump.

Build ProcDump from Scratch

To build from scratch you'll need to have a C compiler (supporting C11), zlib, and a make utility installed. Then simply run:

make
make install

Building Procdump Packages

The distribution packages for Procdump for Linux are constructed utilizing debbuild for Debian targets and rpmbuild for Fedora targets.

To build a deb package of Procdump on Ubuntu simply run:

make && make deb

To build a rpm package of Procdump on Fedora simply run:

make && make rpm

Usage

Usage: procdump [OPTIONS...] TARGET
   OPTIONS
      -C          CPU threshold at which to create a dump of the process from 0 to 100 * nCPU
      -c          CPU threshold below which to create a dump of the process from 0 to 100 * nCPU
      -M          Memory commit threshold in MB at which to create a dump
      -m          Trigger when memory commit drops below specified MB value.
      -n          Number of dumps to write before exiting
      -s          Consecutive seconds before dump is written (default is 10)
   TARGET must be exactly one of these:
      -p          pid of the process
      -w          Name of the process executable

Examples

The following examples all target a process with pid == 1234

The following will create a core dump immediately.

sudo procdump -p 1234

The following will create 3 core dumps 10 seconds apart.

sudo procdump -n 3 -p 1234

The following will create 3 core dumps 5 seconds apart.

sudo procdump -n 3 -s 5 -p 1234

The following will create a core dump each time the process has CPU usage >= 65%, up to 3 times, with at least 10 seconds between each dump.

sudo procdump -C 65 -n 3 -p 1234

The following will create a core dump each time the process has CPU usage >= 65%, up to 3 times, with at least 5 seconds between each dump.

sudo procdump -C 65 -n 3 -s 5 -p 1234

The following will create a core dump when CPU usage is outside the range [10,65].

sudo procdump -c 10 -C 65 -p 1234

The following will create a core dump when CPU usage is >= 65% or memory usage is >= 100 MB.

sudo procdump -C 65 -M 100 -p 1234

All options can also be used with -w instead of -p. -w will wait for a process with the given name.

The following waits for a process named my_application and creates a core dump immediately when it is found.

sudo procdump -w my_application

Current Limitations

  • Currently will only run on Linux Kernels version 3.5+
  • Does not have full feature parity with Windows version of ProcDump, specifically, stay alive functionality, and custom performance counters

Feedback

  • Ask a question on StackOverflow (tag with ProcDumpForLinux)
  • Request a new feature on GitHub
  • Vote for popular feature requests
  • File a bug in GitHub Issues

Contributing

If you are interested in fixing issues and contributing directly to the code base, please see the document How to Contribute, which covers the following:

  • How to build and run from source
  • The development workflow, including debugging and running tests
  • Coding Guidelines
  • Submitting pull requests

Please see also our Code of Conduct.

License

Copyright (c) Microsoft Corporation. All rights reserved.

Licensed under the MIT License.

You can’t perform that action at this time.