if you want to test a Stack Overflow, just enable the circular reference and don't pass a maxLevels arg:
<!--- cfml script begin --->
<cffunction name="shallowDump" output="true">
<cfargument name="key">
<cfargument name="val" default="[EVAL]">
<cfargument name="maxLevels" default="0">
<cfargument name="level" default="0">
<cfset var Local = {}>
<cfif IsSimpleValue( val ) && val EQ '[EVAL]'>
<cfset val = Evaluate( key )>
</cfif>
<cfif IsStruct( val )>
<p style="text-indent:#level * 4#em;">#key#</p>
<cfif ( maxLevels GT 0 ) && ( level LT maxLevels )>
<cfloop array="#StructKeyArray( val )#" index="Local.ai">
<cfset shallowDump( Local.ai, val[ Local.ai ], maxLevels, level + 1 )>
</cfloop>
<cfelse>
<p>-- ommited --</p>
</cfif>
<cfelse>
<p style="text-indent:#level * 4#em;">#key#: [#val.getClass().getName()#]</p>
</cfif>
</cffunction>
<cfif false>
<!--- enabling this will cause Stack Overflow if there is no limit on the max levels --->
<cfset session._circularReference = session>
</cfif>
<cfset shallowDump( "Session", "[EVAL]", 4 )>