Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Visibility
Attributes
Name
Initial
character(len=2048),
private
::
buffer
integer,
private
::
i
integer,
private
::
pos
Source Code
function error_get_full_trace(this)result(trace)!! Get complete error message with stack trace!! Returns a multi-line string with error and call stackclass(error_t),intent(in)::thischaracter(len=:),allocatable::tracecharacter(len=2048)::bufferinteger::i,posif(.not.this%has_error())thentrace=""return end if! Build error messagewrite(buffer,'(A,I0,A)')"Error ",this%code,": "pos=len_trim(buffer)+1if(allocated(this%message))thenbuffer(pos:)=this%messagepos=len_trim(buffer)+1end if! Add stack trace if availableif(this%stack_depth>0)thenbuffer(pos:)=new_line('a')//"Call stack (most recent first):"pos=len_trim(buffer)+1do i=this%stack_depth,1,-1write(buffer(pos:),'(A,I0,A)')new_line('a')//" [",i,"] "pos=len_trim(buffer)+1buffer(pos:)=trim(this%call_stack(i))pos=len_trim(buffer)+1end do end iftrace=trim(buffer)end function error_get_full_trace