-
Notifications
You must be signed in to change notification settings - Fork 205
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ETW heap tracing can be enabled in *three* different ways and UIforETW was only supporting one of them. The others can be extremely useful so this change adds support for them, by overloading the Heap-profiled processes field. The options are: 1) Heap tracing can be enabled for processes with a particular name. UIforETW will set the registry key to enable this and all processes with that name that are launched while the registry key is set will have heap tracing enabled. This is the original option that UIforETW supported. 2) Heap tracing can be enabled for one or two PIDs - this lets heap profiling be enabled for an already running process. 3) Heap tracing can be enabled for a particular process that ETW will launch when tracing starts. The first one is enabled by having a (semi-colon delimited) list of process names to enable heap tracing for - usually just a single name like chrome.exe The second one is enabled by having a (semi-colon delimited) list of process IDs. The maximum number supported is just two. The third one is enabled by specifying the full path to an executable such as C:\Windows\System32\notepad.exe. UIforETW differentiates between these by looking for a backslash character or a leading digit. These options cannot be used together. That is, the heap tracing options can be specified as a semi-colon separated list of process IDs (maximum of two) and process names *or* a single fully-qualified path name. ParseHeapTracingSettings parses the users settings, and then heap tracing is started in one of the three possible ways. For more details see my blog post on this topic which I promise to update: https://randomascii.wordpress.com/2015/04/27/etw-heap-tracingevery-allocation-recorded/ Other changes: - StartEventThreads was moved so that the threads aren't started until after most error handling has been done. - Heap tracing was changed to not record other kernel data, in order to keep the heap traces as small as possible. - The tool tip for the Heap-profiled processes field in the settings dialog was updated to try to explain all of this.
- Loading branch information
1 parent
a34225a
commit 5618e5d
Showing
4 changed files
with
164 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters