-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathPmlToolCli.docopt.txt
68 lines (52 loc) · 3.65 KB
/
PmlToolCli.docopt.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
{0}, the PML processor v{1}
Tools for baking and querying symbols from a Process Monitor Log (PML) file.
Usage:
{0} bake [--debug] [--no-ntsymbolpath] [--no-symbol-download] [--ignore-pmip-create-time] [--add-symbol-path SYMPATH]... [--event-range RANGE] PML
{0} resolve PML
{0} query PML QUERY...
{0} convert [--mergethreads=STRATEGY] [--mergeprocs] [--showall] [--include-stacks] PML [CONVERTED]
{0} help [HELPCMD]
{0} (-h|--help)
{0} (-v|--version)
Commands:
bake Make a PML file portable by baking native and Mono symbols into <PML>.pmlbaked.
resolve Try to resolve symbols for every module found in PML.
convert Render file IO events from the PML to CONVERTED in Chrome trace format.
query Run basic queries against the given PML file.
help Show this screen. Optionally get help for a subcommand.
Arguments:
PML Path to the PML (Process Monitor Log) file to process. An extension
of `.pml` will be added if missing. The folder containing this file
will also be used for:
* Finding mono pmip jit log files (copy them here before Unity exits)
* Writing a .pmlbaked file with the same filename as PML with the
symbolicated data, to be used for a `query`.
QUERY {{int,datetime}} Print the stack for the matching event.
{{regex}} Print ID's for events that match symbol or module name.
CONVERTED Optional filename for converted PML. If not specified, the
converted PML will be written to <PML>.json.
Options:
--debug Write PMLBAKED in a more readable text debug format. (3-4x bigger)
--no-ntsymbolpath Don't use _NT_SYMBOL_PATH from the environment
--no-symbol-download Strip any http* from _NT_SYMBOL_PATH to avoid slow downloads
--ignore-pmip-create-time Don't use the pmip file creation time to select the correct jit log (for testing; this
means that the first pmip it finds will be used to match everything)
--add-symbol-path SYMPATH Add a symbol path to _NT_SYMBOL_PATH
--event-range RANGE Limit the baked events to RANGE indices, where RANGE is in the format START[:COUNT]
--mergethreads STRATEGY Strategy for merging threads, case insensitive. One of:
* none: Do not merge threads (same as no --merge-threads)
* all: Merge all threads into a single thread called `(merged)`. This will allow
categorization in the trace view.
* min: Merge threads down to the minimum required to do the IO in parallel
--mergeprocs Merge processes with the same name to take the first instance's pid. Useful for reducing
noise from multicore subprocesses like lld.exe.
--showall Include events that are normally filtered out:
* Events with no frames (grep for `rwEvent.Frames == null` in source for more info)
* Nested events processing the same file with the same operation
* Debug-type events such as writing to the Mono/Unity pmip_* file
--include-stacks Include stack traces in the `args` of each event. Will make the file gig@nt0r and possibly
Chrome/Edge will fail to load it.
-v --version Show version.
IMPORTANT: baking should be done before any DLL's are replaced, such as from a
Windows Update or rebuilding Unity. No validation is done to ensure that DLL's
matching a given path are the exact same as what was recorded into a PML.