How to print variable of type uvm_reg?

I want to parse a text file and extract a register name and store it in a variable of type uvm_reg. How can I print the variable of type uvm_reg?. If I use %s, I get compile error. Also, it’s considering variable ‘rgstr’ as a string instead of a register. I then want to use that stored register name(in variable of type uvm_reg) to write to register. Here is a psuedocode.

class my_sequence extends uvm_sequence;

top_level_register_model ral_model

task body();
uvm_reg rgstr;
string reg_name, reg_value;
file_handle = $fopen(“regVal.txt”, “r+”);
reg_scan_file = $fscanf(file_handle,“%s %h”,register_name,reg_value);
reg_name = {“block_level_register_a0”,“_”,"register_name.tolower()};
rgstr = ral_model.get_reg_by_name(reg_name);
`uvm_info(“get_full_name()”,$psprintf(“rgstr = %s”, rgstr), UVM_LOW); //ERROR at %s
ral_model.block[0].my_registers.rgstr.write(.status(status),.value(reg_value),.path(UVM_FRONTDOOR),.parent(this));
// Error cannot find ‘rgstr’ in ral_model.block[0].my_registers.
endtask: body

In reply to sudhirss77:

Data of type uvm_reg can printed with the formatter %p. Please consider uvm_reg is a class type with more than one data members inside.

In reply to chr_sue:

In reply to sudhirss77:
Data of type uvm_reg can printed with the formatter %p. Please consider uvm_reg is a class type with more than one data members inside.

Thanks, it works!