[profiler] Move argument parsing to arg-parsing.c and significantly rework argument...
authorRodrigo Kumpera <kumpera@gmail.com>
Fri, 2 Jun 2017 00:37:26 +0000 (17:37 -0700)
committerRodrigo Kumpera <kumpera@gmail.com>
Fri, 2 Jun 2017 01:41:13 +0000 (18:41 -0700)
commit75343422a5eca39fc023f1c1554a8b6b87a7e0d5
treea414810b865376b0de2371ed40e3e0828aec664d
parenta17afc056be738c15761819044fc8eb021b4e07d
[profiler] Move argument parsing to arg-parsing.c and significantly rework argument parsing.

This removes all [no]foo weirdness and flag dancing in favor a simpler model.

Users can enable/disable both events and profiling modes. We expose pretty much all individual events.

A profiling feature is a group of flags that enable a specific profiling scenario.
Right now we have code coverage, perf sampling, gc alloc and heap dump as features.

All events can be prefixed with 'no' and cause them to be disabled. We'll later introduce some sanity
checking around misconfiguration.

Finally, this changes the default set of enabled events to threads and gc. Everything else must be added on top.
Experience has shown that the vast majority of those events are just noise when profiling and the current configuration
design made it quite awkward to introduce quieter modes.
mono/profiler/Makefile.am
mono/profiler/arg-parsing.c [new file with mode: 0644]
mono/profiler/mono-profiler-log.c
mono/profiler/mono-profiler-log.h