Skip to main content

Utility to postprocess malloc-tag JSON snapshots

Project description

malloc-tag tools

This README describes the Python-based tools to postprocess malloc-tag JSON snapshots:

  • mtag-json2dot
  • mtag-postprocess

How to install

Installing these utilities from pypi is really simple:

pip3 install --upgrade malloctag-tools

Rendering

A basic step to enable the visual inspection of the results of a malloc-tag instrumented application is to use the mtag-json2dot utility on the output JSON snapshots:

mtag-json2dot --output nice-picture.svg  <malloc-tag-snapshot-file.json>

Check the top-level README for example of generated SVG output. Note that despite the name mtag-json2dot can produce a variety of output file, supported by the Graphviz engine: .dot, .svg, .svgz, .jpeg, .png, etc.

Postprocess

It might happen that inside your C/C++ application you have several threads running the same code. In this case the pure snapshot provided by the malloc-tag framework (where 1 thread means 1 tree) can be hard to read/follow. In such cases you might want to aggregate together all memory operations done by hese identical threads.

The tool mtag-postprocess makes this very simple. An example usage follows.

Let's assume you need to aggregate the memory alloc/frees done by all threads having the prefix MyThreadPrefix. First of all create a suitable config agg_config.json:

{
    "comment": "This is a simple example of postprocessing rule",
    "rule0": {
        "aggregate_trees": {
            "matching_prefix": "MyThreadPrefix/*"
        }
    }
}

Then launch the postprocessing utility:

mtag-postprocess  --output post-process-out.json --config agg_config.json    <malloc-tag-snapshot-file.json>

The output file is a JSON file with the same identical format used by malloc-tag C++ library. This allows to easily chain and combine different post-processing steps.

The post-processed JSON file can then be used as input of the mtag-json2dot utility. As an example check this picture:

multithread_aggregated_example_svg

And compare it against the non-aggregated picture:

multithread_example_svg

You can see the configuration file used to produce such picture with the mtag-postprocess tool here.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

malloctag_tools-1.5.3.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

malloctag_tools-1.5.3-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file malloctag_tools-1.5.3.tar.gz.

File metadata

  • Download URL: malloctag_tools-1.5.3.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for malloctag_tools-1.5.3.tar.gz
Algorithm Hash digest
SHA256 50e60c26a0c5ca7ddb52a4509706e0be31c65e9f7d4062bfc3263db3ef7f826d
MD5 d51b901d253adfa013051e4740235995
BLAKE2b-256 dfaabd120971c7bad0ee6ebb73ecf795a2d63ef4b8bbd8d4a114c94e64cb3ec7

See more details on using hashes here.

File details

Details for the file malloctag_tools-1.5.3-py3-none-any.whl.

File metadata

File hashes

Hashes for malloctag_tools-1.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0803531dacc8db869b78ad2c0502694767d057d6196f56f1dd8fa22886f8bb85
MD5 e4163a57f0628e2feeac474c2b345b2b
BLAKE2b-256 c28cc57591d454332da0cd47bed9810bb8d76652a567624e0cc895103669974c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page