"The website encountered an unexpected error. Please try again later." this is the most common error encountered by a Drupal developer. Usually, errors are logged by Drupal and the logs can be accessed from Admin->Reports->Recent log messages. But when you get "The website encountered an unexpected error. Please try again later." you cannot even access the reports dashboard.
Debugging
Debugging is a process of finding and reducing the number of bugs. In the web applications development we used to work mostly on the development site at first and debug the errors then we will go for the live site to just push the modifications which we made in the development site. In such cases there may be a chance of error occurrence in the live site even if we come up from the development site. Then we have to handle the debugging process in the live site at that point of time. In the development site process we can do the debugging process easily, there is no need to worry about the customers since because it is not viewable to the customers. But when it comes to the live site we have to consider about the customers who visit the site.
We had recently faced an issue in one of our client's website running on Drupal 5. The site had crashed and we were unable to continue development. We began analyzing the problem by checking the free space on the site and came to the conclusion that the now deprecated PHP Ereg function was causing the site to crash. If you are facing the same issue in one of your Drupal sites, read on to know how we successfully fixed the bug.
As a drupal developer, there were times when I was stuck at some point. At these times, 'devel' module came to my rescue. There are many debugging functions provided by devel. Those are dpm, dpr, dvm, dvr etc. Here, I am going to explain 'dpr()' provided by devel module.
We recently saw this error on a Drupal 6 site that had not been updated for quite a while."warning: call_user_func_array() expects parameter 2 to be array, string given in sites/all/modules/contrib/views/views.module" means what it says. call_user_func_array expects the second parameter to be an array whereas a string was given instead. You can troubleshoot problems like this by writing a bit of debug code before the line where the error is reported.
As a Drupal developer, when we get an error, we may want to know the functions that are called before the system called the function where we get the error. In this case, views_trace() function comes to your help. This function is available if Drupal’s Views module is installed and enabled.
While developing Drupal sites, sometimes we may wish to see whether our function is getting called or whether we reach a point or not in the execution path. Usually the dpm() or print_r() functions comes handy in the case, but sometimes, we may not be able to see the debug messages printed due to page redirection just after our print.