并发可视化工具可显示 EventSource 事件作为标记,因此,您可以控制标记如何显示。使用 高级设置 对话框中,查看 EventSource 标记,注册 ETW 提供程序 GUID。并发可视化工具具有默认调用约定表示 EventSource 事件作为 标志标记、 范围标记和 消息标记。您可以自定义 EventSource 事件如何通过添加自定义字段显示到事件。有关标记的更多信息,请参见 并发可视化工具标记。有关 EventSource 事件的更多信息,请参见 System.Diagnostics.Tracing。
默认 EventSource 事件的可视化
默认情况下,并发可视化工具使用下列约定表示 EventSource 事件。
标记类型
具有 该操作码 win:uint32 的事件: 开始或 win:uint32: 停止将范围的开头或结尾,分别。嵌套或重叠的大小无法显示。事件对在一个线程启动,然后在另一个结束无法显示。
该操作码是这两个条件都不 win:uint32 的事件: 开始也不 win:uint32: 停止将标记标志,除非其 级别 (EVENT_RECORD.EVENT_HEADER.EVENT_DESCRIPTOR 的字段) 是 win:uint32: 详细的或更高版本。
其他情况下,该事件将消息。
重要性
下表如何定义事件水平图于标记的重要性。
ETW 级别 |
并发可视化工具重要性 |
---|---|
win:uint16: Logalways(0) |
Normal |
win:uint16: 重要 |
Critical |
win:uint16: 错误 |
Critical |
win:uint16: 警告 |
高 |
win:uint16: 信息性 |
Normal |
win:uint16: 详细的 |
低 |
大于 win:uint32: 详细的 |
低 |
系列的名称
事件的任务名称为一系列名称。,如果任务尚未为事件,定义系列命名为空。
类别
如果级别是 win:uint32: 关键或 win:uint32: 错误,然后类是提醒 (- 1)。否则,类是默认 (0)。
Text
如果一个 printf 类型的格式化文本消息为定义了事件,它显示为标记的说明。否则,声明为事件和每个负载字段的值的名称。
自定义 EventSource 事件的可视化
您可以自定义 EventSource 事件如何通过添加适当的字段将显示到活动,如下一节所述。
标记类型
使用 cvType 字段,一个字节,控件用于表示该事件的此标记。这是 cvType 的可用值:
cvType 值 |
生成的标记类型 |
---|---|
0 |
消息 |
1 |
范围开头 |
2 |
范围末尾 |
3 |
Flag |
所有其他值 |
消息 |
重要性
可以使用 cvImportance 字段,一个字节,控件设置为 EventSource 事件的重要性。但是,建议使用其级别,可以控制事件的重要性。
cvImportance 值 |
并发可视化工具重要性 |
---|---|
0 |
Normal |
1 |
Critical |
2 |
高 |
3 |
高 |
4 |
Normal |
5 |
低 |
所有其他值 |
低 |
系列的名称
使用 cvSeries 事件字段,字符串,控件并发可视化工具提供 EventSource 事件的系列的名称。
类别
使用 cvCategory 字段,一个字节,控件并发可视化工具提供 EventSource 事件的类别。
Text
使用 cvTextW 字段,字符串,控件并发可视化工具提供 EventSource 事件的说明。
SpanID
使用 cvSpanId 字段, int,为相对事件。每个的值表示范围必须是唯一的开始/停止事件。通常为并发代码,这需要使用同步基元 (如 Exchange 确保为 CvSpanID 使用) 的键 (值是否正确。
![]() |
---|
使用 SpanID 嵌套大小,在同一线程在一个线程以部分重叠部分以启动,然后关闭在另一个不受支持。 |