pj_validate(1) checks a file strictly follows the Paje file format


pj_validate [OPTIONS] [FILE]


The pj_validate(1) command checks if the paje trace file FILE strictly follows the Paje file format as defined by the reference documentation (see section RESOURCES for the appropriate link). It is a useful program to check if a Paje file is valid and can be used in the performance analysis of parallel and distributed applications. If FILE is not provided, then the standard input is used.

pj_validate reads the trace file from the beginning until the end of file is found. During this process, pj_validate relies on the Paje library to recreate in memory the behavior that is registered in the trace file. This means that pj_validate will put in memory all the contents of the trace file, even if the input is very large. Once all the contents of the trace file are simulated without any kind of error, pj_validate exits with a value of 0 (meaning the everything is okay). If the trace is valid, the pj_validate also outputs information regarding the trace: the total number of containers in the trace, the total number of entities (states, events, links and variables) and the type hierarchy contained in the trace.


pj_validate accepts the following options:

-n, --no-strict

Support old field names in event definitions.

-?, --help

Show all the available options.


Give a short usage message.


The pj_validate(1) command expects an input that follows the Paje file format (as described in the PDF document listed in the RESOURCES section of this page). If FILE is not provided, pj_validate(1) will try to read from the standard input.


If the input strictly follows the Paje file format, the output of the pj_validate(1) command looks like this:

report Containers: 82
report Entities: 11417509
report Types: 6
report Type Hierarchy:
report |0 (17PajeContainerType)
report ||ROOT (17PajeContainerType)
report || LINK (12PajeLinkType)
report || MACHINE (17PajeContainerType)
report | | PROCESS (17PajeContainerType)
report |  | STATE (13PajeStateType)

for an input that contains 82 containers, 11417509 entities spread among all the containers and 6 types. The type hierarchy starts with the default root identified by 0 (a container type), with one child named ROOT (also a container type) that has two children: LINK (a link type) and MACHINE (a container type). MACHINE has one child PROCESS (a container type) that has a single child which is a STATE (state type).


Description of the Paje trace file: http://paje.sourceforge.net/download/publication/lang-paje.pdf

Main web site: http://github.com/schnorr/pajeng/


Report pj_validate bugs to <http://github.com/schnorr/pajeng/issues>


Copyright (C) 2012-2014 Lucas M. Schnorr. Free use of this software is granted under the terms of the GNU General Public License (GPL).