Skip to main content

Parser for ThreadX RTOS's trace buffers (aka TraceX)

Project description

TraceX Parser

Documentation Status CircleCI Coverage Status PyPI - Python Version PyPI - Downloads

This python package parses ThreadX trace buffers into both human and machine-readable formats. Don't know where to begin? Check out the quick-start documentation. More documentation about ThreadX trace buffers can be found here.

Install

Via pip

$ python3 -m pip install tracex-parser

Via snap

[!NOTE] This installation method only allows you to use the command line file parser, not the Python library

$ sudo snap install tracex-parser
$ sudo snap alias tracex-parser.parse-trx parse-trx  # Register the `parse-trx` command, otherwise you will need to use tracex-parser.parse-trx
$ sudo snap connect tracex-parser:removable-media  # Required to allow reading of files outside of /home

[!NOTE] Due to how snap packages work, there are restrictions on which files snaps are allowed to access. Currently only /home, /media, /run/media, /mnt are able to be read. For example attempting to read a file in /tmp will throw a No such file or directory error

Example trace buffers

In the repository source there are a couple example TraceX traces which can be used to verify that things are working correctly.

As a python module

documentation

>>> from tracex_parser.file_parser import parse_tracex_buffer
>>> events, obj_map = parse_tracex_buffer('./demo_threadx.trx')
>>> events
[4265846278:thread 7 threadResume(thread_ptr=thread 6,prev_state=0xd,stack_ptr=0x12980,next_thread=), 4265846441:thread 7 mtxPut(obj_id=mutex 0,owning_thread=0x6adc,own_cnt=0x1,stack_ptr=0x129a0), 4265846566:thread 7 mtxPut(obj_id=mutex 0,owning_thread=0x6adc,own_cnt=0x2,stack_ptr=0x129a0)]
>>> obj_map[0xeea4]
{'obj_reg_entry_obj_available **': '0x0', 'obj_reg_entry_obj_type **': '0x1', 'thread_reg_entry_obj_ptr': '0xeea4', 'obj_reg_entry_obj_parameter_1': '0xef4c', 'obj_reg_entry_obj_parameter_2': '0x3fc', 'thread_reg_entry_obj_name': b'System Timer Thread'}

As a command line utility

documentation The file_parser module can also be run as a script, which will provide simple statistics on the trace as well as dumping all the events in the trace. It can be run by either:

  • Running the module manually: python3 -m tracex_parser.file_parser
  • Using the newly installed command: parse-trx

Both run methods are identical.

$ parse-trx -vvv ./demo_threadx.trx
Parsing ./demo_threadx.trx
total events: 974
object registry size: 16
delta ticks: 40402
Event Histogram:
queueSend     493
queueReceive  428
threadResume  19
threadSuspend 16
mtxPut        4
isrEnter      3
isrExit       3
semPut        2
semGet        2
mtxGet        2
threadSleep   2
All events:
2100:thread 2 queueReceive(queue_ptr=0x6b84,dst_ptr=0x115a0,timeout=WaitForever,enqueued=0x13)
1939:thread 2 queueReceive(queue_ptr=0x6b84,dst_ptr=0x115a0,timeout=WaitForever,enqueued=0x12)
1778:thread 2 queueReceive(queue_ptr=0x6b84,dst_ptr=0x115a0,timeout=WaitForever,enqueued=0x11)
1617:thread 2 queueReceive(queue_ptr=0x6b84,dst_ptr=0x115a0,timeout=WaitForever,enqueued=0x10)
1456:thread 2 queueReceive(queue_ptr=0x6b84,dst_ptr=0x115a0,timeout=WaitForever,enqueued=0xf)
...

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

tracex_parser-3.0.1.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tracex_parser-3.0.1-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

Details for the file tracex_parser-3.0.1.tar.gz.

File metadata

  • Download URL: tracex_parser-3.0.1.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.8.20 Linux/6.8.0-1020-aws

File hashes

Hashes for tracex_parser-3.0.1.tar.gz
Algorithm Hash digest
SHA256 917c00c882438da439dc1c6449fd6be49b3af2bad79c0b60868e8536e5b19571
MD5 7b37e5f1a2c4c78ffa36db27f27c0425
BLAKE2b-256 5259697214758a0d9a083332290e3d38ede1ab689627a1454d532d85f722a261

See more details on using hashes here.

File details

Details for the file tracex_parser-3.0.1-py3-none-any.whl.

File metadata

  • Download URL: tracex_parser-3.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.8.20 Linux/6.8.0-1020-aws

File hashes

Hashes for tracex_parser-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 48409d42fc63646e27d7c632d2d9f9e7b1b49a854b23d0f031b229405aa04445
MD5 270306a51741446cb9c5a56c7667e899
BLAKE2b-256 8772f9f58a7e4bd988ab90f93f152188ab3cdce688f17013f5a81bc9cdb4c8eb

See more details on using hashes here.

Supported by

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