--- visualize_backtrace.module 2008-11-06 21:10:45.000000000 -0500 +++ /Library/WebServer/Documents/bills/sites/all/modules/visualize_backtrace/visualize_backtrace.module 2009-01-25 19:04:59.000000000 -0500 @@ -456,7 +456,7 @@ function visualize_backtrace_generate() // the function is part of a single, double or triple iterating loop // Added an admin option to determine whether repeating functions should be filtered out if (variable_get('visualize_backtrace_hide_repeating_functions', 1)) { - visualize_backtrace_detect_repeating_functions(&$function_call_data); + $function_call_data = visualize_backtrace_detect_repeating_functions($function_call_data); } // Initialize Variables @@ -1120,12 +1120,259 @@ function visualize_backtrace_generate() // Provide a link to the Full Function Call Stack since all of the function call stacks are being hidden $output .= '* View the '. l('Full Function Call Stack', 'visualize_backtrace/'. $trace_number .'/view_callstack/all_sections') .' for this Trace.
'; + } + // Format the functional call data into a hierarchical array to be printed out via krumo + if (arg(4) == "krumo") { + $row = 1; + $function_call_data2 = $function_call_data; + $stop_at_row = count($function_call_data2); + + while ($row <= $stop_at_row) { + $index[$function_call_data2[$row]['level']] = $function_call_data2[$row]['level'] .' '. $function_call_data2[$row]['function_name'] .' '. $function_call_data2[$row]['via_filename'] .' '. $function_call_data2[$row]['line_number']; + if ($function_call_data2[$row]['level'] < 10) { + if ($function_call_data2[$row]['level'] == 1) { + $function_callstack_krumo_output[$index[1]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 2) { + $function_callstack_krumo_output[$index[1]][$index[2]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 3) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 4) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 5) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 6) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 7) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 8) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 9) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]] = ''; + } + } + elseif ($function_call_data2[$row]['level'] < 20) { + if ($function_call_data2[$row]['level'] == 10) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 11) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 12) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 13) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 14) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 15) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 16) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 17) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 18) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 19) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]] = ''; + } + } + elseif ($function_call_data2[$row]['level'] < 30) { + if ($function_call_data2[$row]['level'] == 20) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 21) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 22) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 23) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 24) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 25) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 26) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 27) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 28) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 29) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]] = ''; + } + } + elseif ($function_call_data2[$row]['level'] < 40) { + if ($function_call_data2[$row]['level'] == 30) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 31) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 32) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 33) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 34) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 35) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 36) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 37) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 38) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 39) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]] = ''; + } + } + elseif ($function_call_data2[$row]['level'] < 50) { + if ($function_call_data2[$row]['level'] == 40) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 41) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 42) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 43) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 44) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 45) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 46) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 47) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 48) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 49) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]][$index[49]] = ''; + } + } + elseif ($function_call_data2[$row]['level'] < 60) { + if ($function_call_data2[$row]['level'] == 50) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]][$index[49]][$index[50]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 51) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]][$index[49]][$index[50]][$index[51]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 52) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]][$index[49]][$index[50]][$index[51]][$index[52]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 53) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]][$index[49]][$index[50]][$index[51]][$index[52]][$index[53]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 54) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]][$index[49]][$index[50]][$index[51]][$index[52]][$index[53]][$index[54]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 55) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]][$index[49]][$index[50]][$index[51]][$index[52]][$index[53]][$index[54]][$index[55]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 56) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]][$index[49]][$index[50]][$index[51]][$index[52]][$index[53]][$index[54]][$index[55]][$index[56]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 57) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]][$index[49]][$index[50]][$index[51]][$index[52]][$index[53]][$index[54]][$index[55]][$index[56]][$index[57]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 58) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]][$index[49]][$index[50]][$index[51]][$index[52]][$index[53]][$index[54]][$index[55]][$index[56]][$index[57]][$index[58]] = ''; + } + elseif ($function_call_data2[$row]['level'] == 59) { + $function_callstack_krumo_output[$index[1]][$index[2]][$index[3]][$index[4]][$index[5]][$index[6]][$index[7]][$index[8]][$index[9]][$index[10]][$index[11]][$index[12]][$index[13]][$index[14]][$index[15]][$index[16]][$index[17]][$index[18]][$index[19]][$index[20]][$index[21]][$index[22]][$index[23]][$index[24]][$index[25]][$index[26]][$index[27]][$index[28]][$index[29]][$index[30]][$index[31]][$index[32]][$index[33]][$index[34]][$index[35]][$index[36]][$index[37]][$index[38]][$index[39]][$index[40]][$index[41]][$index[42]][$index[43]][$index[44]][$index[45]][$index[46]][$index[47]][$index[48]][$index[49]][$index[50]][$index[51]][$index[52]][$index[53]][$index[54]][$index[55]][$index[56]][$index[57]][$index[58]][$index[59]] = ''; + } + } + elseif ($function_call_data2[$row]['level'] > 60) { + print('Depth greater than 60'); + } + $row++; + } + + // Print out a jQuery-enabled link that will auto-expand the all of the krumo tree + print('
Expand all
'); + drupal_add_js("$(document).ready(function(){ + $('#jquery-expand-krumo').bind('mousedown',function(){ + $('.krumo-expand').addClass('krumo-opened'); + $('.krumo-nest').css('display','block'); + }); + });", "inline"); + + // Print out a krumo-formatted nested array of the entire call-stack + krumo($function_callstack_krumo_output); + + } + // Output the function call stack into a flattened string w/ line breaks and indentations. + if (arg(4) == "output") { + + $function_call_data2 = $function_call_data; + $stop_at_row = count($function_call_data2); + $flat_output = ''; + $spaces = ''; + + for ($row = 1; $row <= $stop_at_row; $row++) { + // Add in white spaces to indent the tree + $spaces = str_repeat(" ", $function_call_data2[$row]['level']-1); + + // Output the Level, Function name, reference file & line number + $flat_output .= $spaces. $function_call_data2[$row]['level'] ." ". $function_call_data2[$row]['function_name'] ." ". $function_call_data2[$row]['via_filename'] ." ". $function_call_data2[$row]['line_number'] ."\r\n"; + $row++; + } + + // Output to a text file + ob_start(); + print($flat_output); + $string = ob_get_clean(); + + // The temp directory does vary across multiple simpletest instances. + $file = file_directory_temp(). '/drupal_debug_'. $trace_number .'.txt'; + if (file_put_contents($file, $string, FILE_APPEND) === FALSE) { + drupal_set_message(t('The file could not be written.'), 'error'); + return FALSE; + } + } + // Add in a link to view the backtraces for all of the contributed module functions $output .= '* Graph the '. l('Contributed Module Function Backtraces', 'visualize_backtrace/'. $trace_number .'/view_callstack/show_filename_backtrace/capture_all_contrib_functions') .'
'; $output .= '* Graph the '. l('"db_query" Function Backtraces', 'visualize_backtrace/'. $trace_number .'/view_callstack/show_function_backtrace/db_query') .'
'; - + // Output a table of the Function Call Stack if the flag was set to true directly above if ($output_function_call_stack) { $row = 1; @@ -1218,13 +1465,9 @@ function visualize_backtrace_generate() // Add indention spaces to simulate a hierarchical listing of the function call stack $level_indent_spaces = ''; - $loop = 1; $level = $function_call_data[$row]['level']; - while ($loop <= $level-1) { - $level_indent_spaces .= '  '; - $loop++; - } - + $level_indent_spaces= str_repeat('  ', $level-1); + // If the Drupal function is called from a PHP function (i.e. line = 0), then swap out the line number // w/ previous PHP function's line number and add a note within the level box if ($function_call_data[$row]['via_PHP_function']) { @@ -1320,7 +1563,8 @@ function visualize_backtrace_generate() $output .= ''. $function_call_data[$row]['via_filename'] .''; $output .= ''. $function_call_data[$row]['function_number'] .''; } - } + } + // $row++; } $output .= ''; @@ -1399,7 +1643,7 @@ function visualize_backtrace_generate() * $function_call_data[$row]['repeating_function_label'] = ""; * $function_call_data[$row]['repeating_function_count'] = 0; */ -function visualize_backtrace_detect_repeating_functions(&$function_call_data) { +function visualize_backtrace_detect_repeating_functions($function_call_data) { $total_rows = count($function_call_data); // Assume that there are no duplicates in the first 4 rows // Zero out the first three rows @@ -1639,6 +1883,7 @@ function visualize_backtrace_detect_repe } $duplicate_row++; } + return $function_call_data; } /**