"Правильная" отладка в 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, время: 04:37. |