report源码分析——report_handle和report_server和report_catcher
report_handle主要实现对message的action,severity,file的设置,然后将message传递给server:
主要的function有两个:initial和process_report_message:
uvm_report_server是一个virtual class,其中定义了很多virtual function的原型,比较重要的是两个static function:
set_server和get_server:top cs上的server类型为default类型,实现了很多function的extend
uvm_default_report_server,是针对server类的具体实现:
其中最重要的三个function:process_report_message,compose_message(处理DISPLAY,LOG),
execute_report_message(处理COUNT,EXIT,STOP):
process_report_message,主要调用uvm_report_catcher对message进行预处理,然后根据action分别调用compose_message
和execute_report_message
compose_report_message,是一个virtual function,可以进行extend来自定义自己的message输出格式:
execute_report_message,根据action来进行具体的操作:
report_summary的具体实现:
uvm_report_catcher是一个uvm_callback的扩展类:通过uvm_register_cb(uvm_report_object,uvm_report_catcher)来注册:
uvm_report_catcher的扩展类必须实现catch function,返回CAUGHT(message不会在有后续处理),THROW(message继续处理),
catcher function可以改变severity,id,action,verbosity等信息,还有很多function来得到具体的message,来处理。
一个典型应用:
拿到message属性的方法:
set属性的方法:
与server function之间的调用:
相关文章
- Sql Server之旅——第二站 理解万恶的表扫描
- SQL SERVER事务处理
- Red Hat Enterprise Server 6.0 安装Sendmail相关包
- SQL Server中关于跟踪(Trace)那点事
- SQL SERVER全面优化-------Expert for SQL Server 诊断系列
- 深入Jetty源码之Server和Container
- Django源码分析之server
- SQL Server replication requires the actual server name to make a connection to the server.错误解决
- hbase源码系列(三)Client如何找到正确的Region Server
- SQL SERVER全面优化-------Expert for SQL Server 诊断系列
- eureka源码:EurekaTransport类用于client与server进行交互
- OpenStack Swift源码初探--proxy下的server.py
- C# Oracle、Sql Server连接(增、删、改、查)
- Sql Server substring(expression, start, length)函数
- Kafka 源码解析:Server 端的运行过程
- hadoop 开始时间datanode一个错误 Problem connecting to server
- elasticsearch源码分析之search模块(server端)
- Zabbix之zabbix-server源码安装
- 华为RH2288H服务器引导ServiceCD安装Windows Server操作系统