I’ve been recently in the situation of having a legacy spaghetti website with a buggy behavior that clearly was executed at constant intervals but I didn’t have a clue of what code/function was being executed or even where was this code defined.

Apparently no browser’s developer tools provides an easy way to inspect and debug timers. How many active setInterval do I have? Which functions are currently being called by setTimeout or setInterval timers? The only solution I could find for this was monkey patching those functions to log information that helps me identify the executed code.

/* Backup the original function */
window.setIntervalBak = window.setInterval;

/* Monkey patch the function */
window.setInterval = function(func, delay) {
    /* Log useful information to identify the
       function like its name or code
    console.log(func.name, func.toSource());

    /* Switch functions */
    window.setIntervalBak(func, delay);
    /* This way the interval timer will continue
       executing the hooked function, but logging
       whatever information we need to help finding
       what's going on

Drop this code in your browser’s console and it will log information about all interval called functions. I recommend you to take a look at Function.prototype for hints on useful information that could help you locate the code you’re trying to find.