Как правильно отлаживать JS?
Как узнать, в каком месте вылезла ошибка?console.error выводит полный стек вызовов со ссылками на конкретные строки конкретных скриптов.
Еще очень удобно включить режим "Pause on exceptions", в нем при выпадении ошибки автоматически включается дебагер. Но для этого Developer Tools должны быть открыты (хотя, если вы веб-разработчик, то они в принципе никогда не закрываются).
Ну а все остальные проблемы легко решаются при помощи дебагера. Там и значения переменных и стек вызовов и логику можно пошагово посмотреть.
Chrome Developer Tools обладают всем необходимым набором инструментов для отладки.
Если вы хотите останавливать выполнение кода в каком-то конкретном месте и смотреть весь стек, то проще всего использовать ключевое слово debugger:function foo (bar) {
    var a = 1;
    // some code...
    debugger;
    // some code...
}