Printing out UVM factory registered sarray "uvm_field_sarray_int"

In a transaction class, I have a static size array, and I registered it to UVM factory using “uvm_field_sarray_int”.

The size of this array is 44.
Now when I am trying to print this transaction class, either using transaction_class.print(), or using sprintf(), other members are getting print but for this array, it prints the first 5 entries and truncates the remaining. Is there anything UVM/SV specific that I am not using, which is making the printout to be truncated version? When I do a specific foreach loop to print all the contents of this array, I do see item getting printed.
[0] integral 1 'h0
[1] integral 1 'h1
[2] integral 1 'h0
[3] integral 1 'h1
[4] integral 1 'h0
… … … …
[39] integral 1 'h0
[40] integral 1 'h0
[41] integral 1 'h0
[42] integral 1 'h0
[43] integral 1 'h0

In reply to debashis_paul:

The field macros have significant limitations when printing different data types/arrays.

It is highly recommended to not use the field macros and instead implement the required transaction methods so you have control over how your transaction is displayed.