I am trying to improve transaction recording. So far we have used field automation macros, but to make debugging efficient I am trying to customize the recording. I've understood that the do_record function should do the trick class proj_brc_tr extends proj_tr; rand time cmd_width; rand time brc_per; `uvm_object_utils_begin(proj_brc_tr) `uvm_field_int(cmd_width,UVM_ALL_ON+UVM_TIME) `uvm_field_int(brc_per,UVM_ALL_ON+UVM_TIME) `uvm_object_utils_end function void do_record(uvm_recorder recorder) ; `uvm_record_attribute(recorder.tr_handle,"cmd_width",cmd_width) ; endfunction So here I'm trying to override the field automation micros and display only 'cmd_width' using do _record. But the change is not getting reflected when I simulate the files. I've read in some forums that do_record needs to be called by the record function, but doesn't do_record gets called automatically when begin_tr() and end_tr() are called in monitors and drivers?