The Visualize Backtrace module enables you to visualize the sequential order of Drupal function calls for a given page load in both a hierarchical tree flowchart and table format. This is a developer's tool that parses XDebug trace files into *.dot GraphViz graphs order to help demystify the Drupal API & identify bottleneck Drupal functions. It can also visualize a variety of specific backtrace and forwardtraces detailed below.

This introductory screencast demonstrates the visualize backtrace module (be sure to expand to full screen mode), and the audio from this Drupal Camp presentation explains it in more detail.

Features

This module transforms trace files created by XDebug into flowcharts that include:

  • Hypertext links to the specific line number where the Drupal function was executed within the source code -- the PHP-highlighted code source pages are generated by this module.
  • Ability to plot all of the backtraces of a specific function call -- as well as an option to additionally plot the children functions in a "forwardtrace."
  • Ability to plot all of the bactraces and forwardtraces of the Drupal functions that were called from a specific module filename -- including the option of all contributed module functions.
  • Execution time for each function call -- as well as elapsed time of all children functions of a specific function.
  • Hypertext links to function descriptions at api.drupal.org to provide more context for each function.
  • Functions are labeled and color-coded according to which filename called them.
  • Looping sets of 1, 2 or 3 function pairs are filtered out and labeled as repeating.
  • Procedural Drupal hooks are labeled with the PHP function & location that called it.
  • Sequential ordering of all of the Drupal function calls for a page load from top-to-bottom and left-to-right.
  • All text on the flowchart is searchable to quickly find functions or to step through sequential function calls

Requirements

This module requires that XDebug is properly set up in order to create the trace files, which more information on this can be found in the INSTALL.txt. You should have access to the php.ini and .htaccess files to set it up. You should also be able to have write permissions to the same directory where the trace files are generated. Download XDebug at http://xdebug.org

You can also optionally alter Apache httpd.conf permissions in order to automatically launch the ZGRViewer java applet flowchart viewer from the command-line via Drupal. More details on installing ZGRViewer are also in the INSTALL.txt. It is also possible to copy and paste the CLI commands into a UNIX terminal window if you have issues with doing it automatically. More details at http://zvtm.sourceforge.net/zgrviewer.html#download

NOTE: This module was developed on a Mac development environment, and so at the moment it does not work on windows machines due to some linux-specific commands. Follow this issue for more details and follow-up.

Project Information

Downloads