How to edit field name in print method

In the transaction class, I use this macro uvm_field_int

class trans extends uvm_sequence_item;
rand bit [31:0] addr;
`uvm_object_utils_begin (trans)
      `uvm_field_int(addr,UVM_ALL_ON)
`uvm_object_utils_end
function new (string name ="");  
          super.new(name); 
endfunction
endclass

to add addr field to print method and when I call Tx.print() (where Tx is handle of my transaction class) it prints the field name as ‘addr’ in transcript. I want to change this field name ‘addr’ to be displayed as ‘address’. How do I do it in UVM ? Thanks.

In reply to rakesh2learn:

You should never use the `uvm_field_* macros. They are very inefficient and difficult to debug. Instead, you should instead be implementing the required transaction methods as described here.

You will be able to modify your do_print() method to meet your requirements.

In reply to rakesh2learn:

Firstly I want to underline what cgales is writing: don’t use the field macros. There is no need to use them.
Secondly, what your intention is might generate confusion, because the data filed is different to what you are printing. Is this really your intention?

In reply to chr_sue:

My intention was to get control over editing transaction signal names in print method. In meanwhile I am checking with do_print as suggested by cgales.

May be you could say the alternative for uvm_field_* macros, untill the admin gives approval to my full access. Because I want to know how the transaction signals will be registered to predefined methods like print, copy, pack etc.. without using uvm_field_* macros.

In reply to rakesh2learn:

Without using field macros all methmentioned are provided to you. For more details see thedefault values for the class data fields.
My recommendation is you should provide your own methods. Then you can take control over the implementation.