Подтвердить что ты не робот

Как заставить инструменты отладки Chrome отлаживаться в хорошем коде?

Хотя я использовал довольно код и установил точки останова на вкладке "Довольно код", отладчик продолжает работать в минифицированном коде. (Я не вижу точно, где я, и вам нужно постоянно переключаться между источником и "симпатичным кодом" ). На тех же страницах с тем же script он иногда работает, а иногда нет. Я не могу найти причину или какую-либо разницу в том, как я ее активирую.

Есть ли способ заставить отладчика использовать "симпатичный код"? Любые идеи или дополнительные вопросы? Должно ли это сообщаться как ошибка?

EDIT: Я до сих пор не понимаю, что происходит, но есть исправление. Поэтому, когда возникает такая ситуация, просто отредактируйте script и добавьте "отладчик"; ключевое слово после курсора. Это сделает точку останова. Затем, если вы используете "симпатичный код", отладчик останется внутри кода, который был бы убран. Как я уже сказал, я не понимаю, почему это происходит, поэтому я все еще жду ответа (ответов).

EDIT: Текущая версия браузера - 42.0.2311.135 (64-разрядная версия).

РЕДАКТИРОВАТЬ: Дэйв отметил, что есть ошибка, связанная с чем-то очень похожим. https://code.google.com/p/chromium/issues/detail?id=415406 В нем говорится, что это связано с размером файла, но я не могу это подтвердить. Я изменил название, чтобы отразить эти результаты.

4b9b3361

Ответ 1

Вы можете назвать это ошибкой. Вы можете назвать это dillema.

Открытый билет с 9 августа 2013 года (Chrome v. 28)

Наблюдения с ошибками Репортер

Я потратил некоторое время на отладку и ознакомился с тем, как разрабатывать devtools локально; Я не уверен, что все это полезно, но здесь, как и раньше, предчувствия:

При прикреплении точки останова в исходном файле .js пользовательский интерфейс кажется запутаться и назначить точку останова на соответствующую. coffee или .ts на ассоциацию sourceMap [см. изображение-1, прилагается]

Однако при снятии отметки точки останова пользовательский интерфейс обновления, чтобы показать точку останова в нужном месте в файле .js. [см. изображение-2, прилагается]

Мне кажется, что есть неправильный поиск, происходящий в WebInspector.CompilerScriptMapping.rawLocationToUILocation или WebInspector.CompilerScriptMapping.uiLocationToRawLocation

Открытый билет с 21 сентября 2014 года (Chrome v. 37)

Наблюдение за исследователями хрома

Это не то, что можно легко решить. Точка останова менеджер строится вокруг идеи, что точка останова всегда отображается в "наилучшем" месте пользовательского интерфейса, который является нескомпилированным источником в случае исходных карт. Для этого нам потребуется использовать точку останова primary ui location в качестве подсказки, где это должно быть показано. более того так как строка выполнения будет показана в несжатых источниках default, важно, чтобы мы продолжали показывать наши контрольные точки в них также. Таким образом, все это заканчивается необходимостью показывать точки останова (и линии выполнения) в нескольких местоположениях ui одновременно. Все действия с этими местами должно работать плавно и т.д.

Это значительное усилие и не похоже на "GoodFirstBug", мне.


Вывод:

Prettify, похоже, не создает новую неминифицированную версию. Скорее это визуализируется. Это имеет смысл. При использовании всех различных фреймворков и вкусов (например, кофе), если отладчик создал новый файл, существует высокая вероятность ошибки.

Точка останова менеджер строится вокруг идеи, что точка останова всегда отображается в "наилучшем" месте пользовательского интерфейса, который является нескомпилированным источником в случае исходных карт.

Я интерпретирую это как означающий, что браузер Chrome и отладчик будут продолжать работать из мини-версии. Когда вы устанавливаете точку прерывания в "симпатичном" файле, отладчик устанавливает его в миниатюрный файл и предоставляет разработчику "красивую" визуализацию отладчика, проходящего через мини файл.

Это много для отладчика, который может управлять, и может быть довольно хрупким. Мы можем назвать это ошибкой или очень амбициозной функцией, для которой многие вещи могут пойти не так.

**

Я добавил этот поток к обоим ошибкам и отправил по электронной почте оба назначенных ему разработчика.

**

Ответ 2

Icons help

В Chrome и Safari просто выберите вкладку "Сценарии", найдите соответствующий файл и нажмите значок "{}" (довольно печатная версия), расположенная в нижней панели.

Ответ 3

Похоже, вы нажимаете значок "{}" (довольно печатная), расположенный на нижней панели, и устанавливаете там точки останова без привязки исходной карты исходного файла.

При задании файла .map инструменты разработчика Chrome и сопоставляют каждую строку выполненного мини-кода с исходным исходным файлом с использованием данных в файле .map. В противном случае он просто сделает это лучше всего для отступов/форматирования мини файла.

Я предлагаю вам использовать grunt uglify или подобное, чтобы минимизировать js, который автоматически сгенерирует файл карты для отладки. См. Следующие ссылки для получения дополнительной информации о том, как это сделать.

http://blog.teamtreehouse.com/introduction-source-maps

Файлы javascript.map - исходные коды javascript

Ответ 4

Как насчет этого?: Создайте довольно-печатную версию своей "минимальной" версии и сохраните ее с помощью своего имени версии "min": Замените "мин" на симпатичный "один"