Definition
An unmatched AMDTaskBegin() or AMDTaskEnd() is one of
these two calls for which corresponding AMDTaskEnd() or
AMDTaskBegin() (respectively) calls are not found in the generated
profiled data. There can be multiple unmatched AMDTaskBegin() or
AMDTaskEnd() in a generated profile data.
Note that, by definition, unmatched AMDTaskBegin() and
AMDTaskEnd() means that no match for those are found from same
domain and same thread.
Reason for Unmatched Task
The following are a few possible cases where we get unmatched
AMDTaskBegin() or AMDTaskEnd() in the generated
data (that is, # AMDTaskBegin() is not same as #
AMDTaskEnd() entries in the data).
- (Case1) The usage of start-pause – one item of the pair was in paused state and other in resume state.
- (Case2) Multiple times attachment of same process - one item of the pair was in not attached state and other in attached state.
- (Case3) Coding error while instrumenting, forgetting to write balanced
AMDTaskBegin()andAMDTaskEnd()pair. - (Case4) Runtime condition. Example: some unforeseen jump or exception handling made
one of
AMDTaskBegin()orAMDTaskEnd()call unreached.
Handling the Unmatched Task
Any unmatched task is ignored, that is, not considered or listed in reported tasks.