All Projects → Sysinternals → Procdump For Linux

Sysinternals / Procdump For Linux

Licence: mit
A Linux version of the ProcDump Sysinternals tool

Programming Languages

c
50402 projects - #5 most used programming language
shell
77523 projects
Makefile
30231 projects
Roff
2310 projects

Projects that are alternatives of or similar to Procdump For Linux

Cypress Terminal Report
Better terminal and file output for cypress test logs.
Stars: ✭ 200 (-92.02%)
Mutual labels:  cli
Gopherlabs
Go - Beginners | Intermediate | Advanced
Stars: ✭ 205 (-91.82%)
Mutual labels:  cli
Chatette
A powerful dataset generator for Rasa NLU, inspired by Chatito
Stars: ✭ 205 (-91.82%)
Mutual labels:  cli
Autarky
Liberating disk space from 📁 node_modules
Stars: ✭ 203 (-91.9%)
Mutual labels:  cli
Saldl
A lightweight well-featured CLI downloader optimized for speed and early preview.
Stars: ✭ 203 (-91.9%)
Mutual labels:  cli
Sclack
The best CLI client for Slack, because everything is terrible!
Stars: ✭ 2,363 (-5.74%)
Mutual labels:  cli
Ahoy
Create self-documenting cli programs from YAML files. Easily wrap bash, grunt, npm, docker, (anything) to standardize your processes and make the lives of the people working on your project better.
Stars: ✭ 201 (-91.98%)
Mutual labels:  cli
Aws Recon
Multi-threaded AWS inventory collection tool with a focus on security-relevant resources and metadata.
Stars: ✭ 203 (-91.9%)
Mutual labels:  cli
Aria2p
Command-line tool and library to interact with an aria2c daemon process with JSON-RPC.
Stars: ✭ 201 (-91.98%)
Mutual labels:  cli
Starport
The easiest way to build a blockchain.
Stars: ✭ 204 (-91.86%)
Mutual labels:  cli
Addons Linter
🔍 Firefox Add-ons linter, written in JavaScript. 👁
Stars: ✭ 202 (-91.94%)
Mutual labels:  cli
Fwd
🚂 The little forwarder that could
Stars: ✭ 203 (-91.9%)
Mutual labels:  cli
.tmux
🇫🇷 Oh my tmux! My self-contained, pretty & versatile tmux configuration made with ❤️
Stars: ✭ 15,594 (+522.02%)
Mutual labels:  cli
Ascii
👾 ASCII Roulette :: ascii art video chat on the cli
Stars: ✭ 202 (-91.94%)
Mutual labels:  cli
Storyblok
You found an issue with one of our products? - submit it here as an issue!
Stars: ✭ 206 (-91.78%)
Mutual labels:  cli
Ldb
A C++ REPL / CLI for LevelDB
Stars: ✭ 201 (-91.98%)
Mutual labels:  cli
Next Build Id
Easily set your `next build` BUILD_ID to the latest git commit hash
Stars: ✭ 203 (-91.9%)
Mutual labels:  cli
Facebook Dl
📼 Very minimal Facebook downloader written in 28 lines of Python code (not including comments and blank spaces)
Stars: ✭ 207 (-91.74%)
Mutual labels:  cli
Rts
RTS: request to struct. Generates Go structs from JSON server responses.
Stars: ✭ 206 (-91.78%)
Mutual labels:  cli
Webpack Dashboard
A CLI dashboard for webpack dev server
Stars: ✭ 13,850 (+452.45%)
Mutual labels:  cli

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 29
    • Ubuntu 16.04 LTS
  • gdb >= 7.6.1
  • zlib (build-time only)

Install ProcDump

Checkout our install instructions for distribution 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
      -h          Prints this help screen
      -C          Trigger core dump generation when CPU exceeds or equals specified value (0 to 100 * nCPU)
      -c          Trigger core dump generation when CPU is less than specified value (0 to 100 * nCPU)
      -M          Trigger core dump generation when memory commit exceeds or equals specified value (MB)
      -m          Trigger core dump generation when when memory commit is less than specified value (MB)
      -T          Trigger when thread count exceeds or equals specified value.
      -F          Trigger when file descriptor count exceeds or equals specified value.
      -G          Trigger when signal with the specified value (numeric) is sent (uses PTRACE and will affect performance of target process).      
      -I          Polling frequency in milliseconds (default is 1000)
      -n          Number of core dumps to write before exiting (default is 1)
      -s          Consecutive seconds before dump is written (default is 10)
      -o          Path and/or filename prefix where the core dump is written to
      -d          Writes diagnostic logs to syslog
   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

The following will create a core dump in the /tmp directory immediately.

sudo procdump -o /tmp -p 1234

The following will create a core dump in the current directory with the name dump_0.1234. If -n is used, the files will be named dump_0.1234, dump_1.1234 and so on.

sudo procdump -o dump -p 1234

The following will create a core dump when a SIGSEGV occurs.

sudo procdump -G 11 -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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].