"Правильная" отладка в chrome
Шалом, пагни. :)
Возникла проблема с отладкой одного довольно таки непростого скрипта. Общие принципы отладки в хроме вроде понял, по крайней мере в простых скриптах ставил бряку перед document.write или непосредственно запросом, все получалось. А тут скрипт жутко обфусцирован, ничего не понять, данные подгружаемые в скрипт находятся после него. Пробовал ставить бряку перед данными, так не показываются переменные, ставить в самом скрипте, так не могу уловить изменения переменных, даже пошагово. Нет ли какого нибудь способа ставить бряку по событию, например, GET запроса. |
Смотри справа отладчика вкладку XHR Breakpoints.
Еще внизу есть кнопка Pretty Print - помогает на сжатых скриптах. |
Цитата:
Вот еще, а как собственно отлаживать скрипты в вебшторме? |
Цитата:
|
Вложений: 1
Цитата:
Зы. Если не в лом, глянь будь добр.:help: |
Цитата:
Во вкладке Сеть указывается чем инициирован запрос. На изменение DOM-модели можно тоже ставить точки останова |
Спасибо, попробуем
Зы. Попробовал, но все равно многое неясно. А именно, бряка ставится сейчас верно, но... Допустим, имеем функцию mb: function(a) { a = a.replace(/\r\n/g, "\n"); for (var b = "", c = 0; c < a.length; c++) { var d = a.charCodeAt(c); 128 > d ? b += String.fromCharCode(d) : (127 < d && 2048 > d ? b += String.fromCharCode(d >> 6 | 192) : (b += String.fromCharCode(d >> 12 | 224), b += String.fromCharCode(d >> 6 & 63 | 128)), b += String.fromCharCode(d & 63 | 128)) } return b } По идее, я могу в отладчике просмотреть значение любой переменной, но, опять таки, показывается какая то ересь или вообще ничего. Как так может быть, если значение уже сгенерировано и его можно видеть (конечный результат) в графе Scope Varibales. Или, вот e: function(a) { var b = +new Date % 1E6; return "/?" + b + "\x3d" + this.Ka(a.replace("/?", ""), b) } Как она получилась, переменная e, виден конечный результат только. Судя по коду, в b должно быть число, а там фиг знает что - готовый результат return "/?" + b + "\x3d" + this.Ka(a.replace("/?", ""), b). Я вот думаю, т.к. код обфусцирован, может отладчик и не знает, что где, ведь одни и те же переменные используются в каждой функции... Кстати, что бы это могло значить aa: function(a, b, c, d) { d = d || "jclb"; if (c) { var e = "jsonp" + String(Math.random()).slice(4); b += "\x26" + d + "\x3dwindow." + e; p[e] = function(a) { scriptOk = w; p[e] = v; try { delete p[e] } catch (b) { } f.log("Callback called"); c(a) } } b = this.e(b); d = this.v("script"); d.src = a + b; return d } Callback, это ведь передача другой функции. |
Пасонээээээээээ, выручайте. Я конечно все понимаю, кому охото за спасибо ковыряться в геморрном коде, но хоть обьясните, как вебстормом пользоваться. Ничего не понятно, как в нем отлаживать скрипты.
|
Цитата:
|
Часовой пояс GMT +3, время: 22:33. |