---
name: "pj_validate"
section: "1"
platform: "linux"
package: "pajeng"
version: "1.1+git20140604.1d5509f042-1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/pj_validate"
---

# pj\_validate(1)

checks a file strictly follows the Paje file format

## NAME

pj\_validate - checks a file strictly follows the Paje file format

## SYNOPSIS

**pj\_validate** \[*OPTIONS*\] \[*FILE*\]

## DESCRIPTION

The [pj\_validate(1)](/pj_validate/1.md) 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.

## OPTIONS

**pj\_validate** accepts the following options:

- **-n, --no-strict**

  Support old field names in event definitions.

- **-?, --help**

  Show all the available options.

- **--usage**

  Give a short usage message.

## INPUT DESCRIPTION

The [pj\_validate(1)](/pj_validate/1.md) 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)](/pj_validate/1.md) will try to read from the standard input.

## OUTPUT DESCRIPTION

If the input strictly follows the Paje file format, the output of the [pj\_validate(1)](/pj_validate/1.md) 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).

## RESOURCES

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

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

## REPORTING BUGS

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

## COPYRIGHT

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

## SEE ALSO

**[pj\_dump(1)](/pj_dump/1.md)**
