Как убрать ошибки в консоли
Chrome DevTools: Хитрости при отладке
В сети полно обзоров Chrome DevTools, которые демонстрируют многочисленные возможности этого прекрасного инструмента. DevTools настолько большие, что познать их полностью, как мне кажется, уже почти невозможно.
В этой заметке я бы хотел остановиться на различных нюансах, полезных при отладке. Какие-то из них я почерпнул в сети (например в комментариях на Хабре), до каких-то додумался сам. Надеюсь вы найдёте для себя что-нибудь полезное.
Все горячие клавиши в статье будут даны для linux/windows.
PopUps, popovers, dropdowns и прочие «всплывашки»
Вот простое решение (upd: вот решение получше от @kamre):
Запускаем: setTimeout(‘debugger;’, 3_000)
Успеваем за эти три секунды активировать всплывашку
debugger тормозит вкладку
Всплывашка в вашем полном распоряжении
Активируем скриншот-утилиту (например. кнопка PrintSrcreen на Windows)
Передвигаем курсор за пределы страницы (например на панель devTools)
Отменяем скриншот (Esc?)
Всплывашка в вашем полном распоряжении
Бесконечный цикл
Находим искомую вкладку в списке, выделяем.
Жмём кнопку «End Process». Вкладка убита.
Хорошо, а что если мы не хотим её убивать?
Теперь вы в процессе отладки JS. Самое время понять причину бага. Разобрались? Отлично. Что дальше? Вы хотите вернуть эту же вкладку к жизни, потому что на странице есть важные данные или условия для эксперимента? Но вам мешает этот чёртов вечный цикл?
Просто «сломайте» код. Во время отладки вы можете запускать произвольный JS код в консоли. При этом у вас есть доступ к локальным переменным того участка кода, который сейчас остановлен.
Деактивация breakpoint-а
Небольшой нюанс, о котором знают не все. Поэтому я решил добавить его в подборку. Дело в том что breakpoint-ы можно не только добавлять и удалять, но и деактивировать. Для этого у вас есть три способа:
Вот эти галочки справа:
Вот это контекстное меню:
Просто Shift + LeftClick по панели breakpoint-а:
Логирование при помощи breakpoint-ов
upd: Оказалось, что для логирования есть отдельная опция «Add logpoint»:
HotFix-ы посредством breakpoint-ов
Механизм тот же самый. Предположим вы отлаживаете один баг, но в процессе отладки обнаружили другой, который всё портит, и вы не хотите на него отвлекаться. А ещё вы не хотите перезагружать вкладку, т.к. эту ситуацию вы потом уже не воспроизведёте. Что делать? Можно в breakpoint-условии написать что-нибудь, что чинит второй баг.
Таким образом можно добиться очень многого. Зависит уже от вашей фантазии и сложности отладки. Ключевое:
нет нужды перезагружать вкладку (это может быть бесценным).
breakpoint-условие будет послушно запускаться всякий раз когда JS-интерпретатор будет добираться до breakpoint-а. По сути это аналогично тому что вы добавили строку кода ровно туда, куда нужно, ничего по факту не добавляя.
Breakpoint посреди строки
Не все замечали, но Chrome DevTools позволяют выставить breakpoint не на всю строку, а в какую-нибудь её часть:
Это может сэкономить вам кучу времени.
Имена собственные
Если вы используете sourceMaps, то код, которые на самом деле исполняется, и тот который вы видите перед глазами могут очень сильно отличаться. В частности это касается имён локальных переменных. Пример:
И как теперь это дебажить? А чёрт его знает. Но могу дать пару советов.
1-й: поищите настоящие имена вот здесь:
upd от @extempl: не всегда новые наименования это одна\две буквы. К примеру для поддержки ES6 Import/Export webpack даёт вот такие длинные названия:
2-й: отключите sourceMaps (это можно делать live, без перезагрузки страницы):
SourceMap очень часто усложняют отладку до уровня nightmare. У @vintage где-то (где кстати?) была хорошая статья по этому поводу. Там объясняется почему SourceMap такие плохие, когда дело касается отладки. Я сам то и дело включаю\выключаю эту галочку, в зависимости от обстоятельств.
BreakPoint-ы и PrettyPrint
Минифицированный код можно отформатировать так, чтобы с ним можно было работать:
Но очень часто даже после этого с ним невозможно работать. BreakPoint-ы ставятся куда попало (куда не кликай он появляется либо вначале файла, либо в его конце). Отладка просто сходит с ума (к примеру всегда указывает на первую строку файла).
Открыть этот локальный файл в редакторе
Отформатировать код файла (например Prettier-ом)
Сохранить (да, даже если это сторонняя библиотека)
Убедиться что пересборка webpack\rollup\whatever учла это изменение
Теперь вам не нужен DevTools-ий pretty print. Можно debug-ить напрямую.
Перехват запросов
Что делать если вы ковыряете чужой ресурс и хотите перехватить запрос. Я думаю, тут есть много рецептов. Здесь я опишу такой, который не требует никаких сторонних расширений\приложений.
Находим нужный запрос в network-вкладке и наводим на него мышью:
Кликаем по 1-й (не обязательно) из ссылок, попадая в то место, где этот запрос был вызван. Ставим точку останова. Воспроизводим нужные действия в UI, чтобы этот запрос перевызвать.
В этом месте мы можем подправить параметры ещё до того как запрос ушёл на сервер. Отсюда же можно отследить то место, где будет обработан результат запроса:
Наверняка есть и более удобные способы перехватить запрос. Поделитесь вашим рецептом в комментариях!
Race Condition
Что делать, если у вас есть сложная многостадийная асинхронная логика и с ней что-то не так. Например у вас race condition. Как проще всего воссоздать условия для его обнаружения? Я думаю, тут есть множество рецептов. Здесь я остановлюсь только на одном из них. В network вкладке есть такой dropdown:
Наверняка многие из вас им уже пользовались. Offline режим позволяет отловить ошибки при проблемах с сетью. Slow 3G проследить как быстро грузится ваш сайт при медленном интернете. Но обратите также внимание на секцию «Custom». Это заданные вручную режимы. Просто нажмите «Add» (внизу списка), чтобы добавить свой.
Какие режимы использую я?
Never: максимальная задержка. Просто выставите огромное число. Например сутки. Теперь любой запрос повисает до тех пор, пока вы не выключите этот режим. Запросы не «умирают», а именно повисают. Это даёт вам неограниченное время для отладки какой-нибудь промежуточной стадии вашей зубодробительной логики.
2\5\30sec latency: просто большая задержка. Актуальна когда вы отлаживаете «плавающий» баг. То он есть, то его нет. Или, скажем, когда вам нужно успеть сделать какое-нибудь быстрое действие мышью между двумя запросами. Или более пристально проследить что происходит, как бы в режиме slow-mo.
Disable cache
Думаю большинство из нас знакомы с этой галочкой:
Здесь я хотел бы отметить, что не стоит на постоянной основе ей пользоваться. Дело в том, что такое поведение браузера очень далеко от нормального. Браузер перестаёт пользоваться не только старым кешем, оставшимся от предыдущей страницы, но и новым. Если покажете картинку, удалите её, а потом снова создадите с тем же SRC, то у вас будет два запроса.
Если на постоянной основе всё тестировать без кеша, то многие хитрые баги, которых просто не будет при отключённом кешировании, уйдут в production. И вот там их обнаружить и отладить может быть уже не тривиально.
В целом рекомендую поглядывать на запросы во вкладке network. Например можно случайно обнаружить, что отключён gzip/brotli. Или что CDN перестал присылать cache-control заголовок. Или что ещё вчера страница загружала 1 MiB, а сегодня 12 MiB (например какой-нибудь серверный endpoint стал присылать тонны JSON-а).
HI-DPI
Что делать, если у вас обычный монитор, а клиенты жалуются на мыло на мобильных устройствах\retina экране? Для начала активируйте нужный DPR режим:
Теперь браузер имитирует HI-DPI. И всё стало таким угловатым (нюансы сглаживания при resize). Но как проверить настоящую картинку?
Открываем палитру команд ( Ctrl+P )
Ищем: capture area screnshoot
Выделяем мышью нужную область экрана, сохраняем в файл
Открываем файл и наслаждаемся огромной картинкой. Смотрим правда ли она «мыльная»?
Обычными системными скриншотами, разумеется, этого не достичь. Полагаю этот же рецепт работает и в обратную сторону (имитация 1х экрана).
Это всё?
Если вы нашли синтаксическую\стилистическую ошибку (или тонну таких ошибок) прошу обращаться в личку (а не в комментарии).
Что такое Cookie SameSite, какие значения может иметь этот атрибут и как убрать ошибки в консоли браузера
В целях совершенствования безопасности веб-ресурсов периодически появляются новые технологии и инструменты для разработки. Появление атрибута SameSite Cookie как раз является таким примером. Атрибут при должной настройке призван защитить от возможных атак путем использования сторонних cookie-файлов. Также правильные настройки данного атрибута позволяют запретить отслеживания при помощи Cookie, что часто используется для персонализации рекламы и сбора данных о пользователе.
Что такое Cookie SameSite? Это расширение файлов Cookie (появившееся в 2016 году), которое предназначено для защиты от подделки межсайтовых запросов (сокращенно CSRF). Но совсем недавно этот атрибут Cookie был внедрен компанией Google в свои продукты в обновленном виде и поэтому появилась необходимость правильно устанавливать данный атрибут, чтобы сайты работали без ошибок. В частности, Google обновила стандарт и добавила новшества – теперь по умолчанию устанавливается запрещающее значение, что может повредить единую систему аутентификации и вызвать прочие ошибки на сайте.
Атрибут SameSite может иметь разные значения:
– None, в этом случае ограничения на файлы Cookie не устанавливаются;
– Strict, устанавливается полный запрет на отправку любых Cookie;
– Lax, в этом случае файлы Cookie полностью блокируются для межсайтовых запросов (включая изображения, iframe и т.д.).
Для использования защищенного соединения HTTPS также можно указать дополнительный атрибут Secure. Если это указано, Cookie будет отправлен только через HTTPS, но не через обычный протокол HTTP.
При неправильном использовании Cookie в консоли браузера могут появляться ошибки, связанные с данным атрибутом. Исправить их достаточно просто – достаточно для всех Cookie-файлов установить атрибут SameSite и выбрать для него подходящее значение.
Как устанавливать значения Cookie SameSite? Например, в языке PHP (7.3+) управлять такими настройками позволяет функция setcookie, которая принимает различные параметры установки Cookie. Параметр options этой функции позволяет задать различные настройки – он принимает ассоциативный массив, который может иметь любой из ключей: expires, path, domain, secure, httponly и нужный нам samesite. Если элемент samesite не указан, cookie-атрибут SameSite не будет установлен.
В более старых версиях PHP можно управлять данным атрибутом как показано далее:
Header always edit Set-Cookie (.*) «$1; SameSite=Lax».
Не стоит забывать и о методе установке Cookie посредством отправки заголовков:
Решение различных проблем с Counter Strike Global Offensive
Counter Strike Global Offensive является одной из самых популярных мультиплеерных игр, наряду с такими гигантами как Team Fortress 2 и Dota 2. Если обратить свое внимание на разработчиков этих игр, то вы заметите, что он у них один – Valve. И тут уж вам решать: это стечение обстоятельств или просто компания Valve делает свою каждую игру образцовой. У них только пожалуй одна игра которую максимум можно расценить как сомнительную. Игра эта называется Ricochet.
Но давайте вернемся к Counter Strike Global Offensive. Какой бы отличный не был этот проект, но даже у него есть некоторые проблемы досаждающие игрокам. В этой статье будут собраны самые популярные вопросы и проблемы которые возникают у пользователей во время игры в CS GO. Как и предыдущая статья о Team Fortress 2, она будет выполнена в виде вопрос->ответ.
Решение различных проблем с Counter Strike Global Offensive
Как открыть консоль?
Уже по сложившейся привычке в старых играх, чтобы открыть консоль необходимо нажать всего одну кнопку – “
“(тильда или буква “Ё” в русской раскладке). Однако в CS GO при нажатии на эту кнопку ничего не добьетесь.
Для того чтобы включить консоль в игре, вам сначала необходимо зайти в настройки и поставить галочку напротив “Включить консоли разработчика”. После этого клавиша “
” будет открывать вам консоль.
Каким образом определить версию CS GO?
Для того чтобы определить версию вашей игры, вам всего лишь необходимо прописать в консоль “version”.
Каким образом изменить ник в игре?
Для того чтобы выбрать в игре свой собственный ник сделайте следующее:
Пытаюсь зайти на сервер, но игра выдает сообщение “Client and server product versions do not match” или “Данный сервер использует более новый протокол”
Данные сообщения указывают на то, что версии вашей игры и версия сервера к которому вы пытаетесь подсоединиться не сходятся между собой. В этом случае вы ничего не можете сделать, чтобы исправить эту проблему. Все что вы должны сделать, так это просто подождать обновления протокола нужного вам сервера.
Пытаюсь зайти на сервер, но игра выдает сообщение “Сonnection failed after 4 retries”
Как уже понятно из сообщения, игра выполнила уже 4 попытки по установлению соединения с сервером, но потерпело неудачу. Вполне возможно, что в этом виноват ваш Брандмауэр или антивирус. Давайте рассмотрим некоторые варианты решения этой проблемы:
Каким образом изменить язык в чате или консоле?
Изменить язык в консоле или чате можно изменить точно также как в самой операционной системе. Например комбинацией клавиш Alt+Shift или Ctrl+Shift.
При запуске игры вылетает сообщение “This application has to start because the application configuration is incorrect. Reinstalling the application may fix this problem”.
Для того чтобы избавиться от этой ошибки вам нужно установить наборы библиотек Microsoft Visual C++ для Visual Studio 2008. Найти вы можете их на официальном сайте Microsoft.
Особенно обратите внимание на их разрядность при установке. Если у вас 32-битная система, то устанавливайте Microsoft Visual C++(х86), а если 64-битная, то Microsoft Visual C++(х64).
Возможно ли отключить звук от микрофона игрокам на сервере?
Для того чтобы выключить звук игроку, например самому назойливому, вы должны нажать во время игры на кнопку “Esc”. Далее найдите в меню опцию “Заглушить игроков”. Вы можете отключить звук как всем игрокам, так и только одному из них.
Каким образом вернуть игру к стандартным настройкам после ее изменения с помощью модов, конфигов и т.п?
Для начала вам необходимо прописать в параметрах запуска игры в Steam параметр “-autoconfig”(без кавычек). Для этого:
Затем вам нужно будет удалить некоторые ветки в реестре Windows:
HKEY_CURRENT_USER\Software\Valve и HKEY_LOCAL_MACHINE\SOFTWARE\Valve – если у вас 32-битная разрядность.
HKEY_CURRENT_USER\Software\Valve и HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Valve – если у вас 64-битная разрядность.
Микрофон начал работать некорректно именно в CS GO
Первое что вы должны попробовать, так это выполнить обновление драйверов звуковой карты. Также можете покопаться в настройках самого микрофона в системе и в игре.
Но как бы то ни было, проблем с микрофоном может быть невообразимое количество и они могут зависеть от очень многих факторов. Чего-то конкретного в такой ситуации посоветовать невозможно.
Каким образом сделать скриншот во время игры?
Практически во всех играх которые располагаются в Steam есть возможность делать скриншоты нажатием кнопки F12. Также в самой CS GO вы можете сделать скриншот нажатием кнопки F5 и найти их можно в “…\csgo\screenshots”.
Каким образом сделать демо и просмотреть его?
Вам нужно открыть консоль и прописать в нее команду “record”. Для того чтобы прекратить записывать демо, пропишите в консоль команду “stopdemo”. Записи своих демо вы можете найти в папке “cstrike”. Если же вы желаете просмотреть записанное демо, то нажмите комбинацию клавиш Shift+F2.
Постоянные обновления при запуске Counter Strike Global Offensive
Для исправления этой проблемы просто остановите все загрузки которые производятся в данный момент и перезагрузите клиент Steam. Это должно исправить проблему с обновлениями.
Проблемы с использованием внутриигрового оверлея
Попробуйте покопаться в настройках вашего firewall и антивирусного ПО. Возможно именно они блокируют каким-то образом оверлей в игре.
Вылетает сообщение “Failed to lock index buffer in CMeshDX8::LockIndexBuffer”
Как можно понять по самому сообщению, а именно по его части “DX8“, вам необходимо выполнить обновление DirectX. Именно такие библиотеки эссенциальны для работы утилит и игр, включая Counter Strike Global Offensive. Скачать его вы можете прямо с официального сайта Microsoft.
Слышно различные щелканья и потрескивания во время любых фраз
Для того чтобы исправить проблему со звуком попробуйте сделать следующие шаги:
При запуске игры вылетает сообщение “Эта игра в данный момент недоступна. Application running”
Чтобы убрать это сообщение при запуске игры вам необходимо удалить один определенный файл: \Steam\ClientRegistry.blob
При запуске игры вылетает сообщение “Platform error: module failed to initialize, Инструкция по адресу “0x0*******” обратилась к памяти по адресу “0x0*******”. Память не может быть “read””
Для того чтобы избавиться от этой ошибки вам необходимо убедиться, что в директории игры нет никаких кириллических символов. Замените таковые, если они есть, на латинские символы.
При запуске Steam вылетает сообщение “Fatal error: Failed to load platform modules”
Зайдите в папку “SteamApps” и удалите оттуда два файла: winui.gcf и platform.gcf.
Запуск любой игры на Source заканчивается ошибкой с указанным hl2.ехе
Чтобы исправить ошибки при запусках игр на движке Source вы должны сделать следующие вещи:
После этих действий Source-игры должны начать запускаться.
В какую папку нужно положить загруженные карты для Counter Strike Global Offensive
Все загруженные вами карты вы должны класть в папку \Steam\SteamApps\common\Counter-Strike Global Offensive\csgo\maps
При заходе на сервер выдается сообщение “Missing map *****, disconnecting”
Вам необходимо включить опцию “allow all custom files from server”, которая находится в настройках сетевого режима. Затем попросту уберите карту из-за которой возникают проблемы.
При запуске игры возникает ошибка с сообщением “Прекращена работа программы “csgo.exe””
Для исправления этой ошибки сделайте следующее:
Черный экран при запуске игры с сообщением “Режим не поддержан.”
В этом случае вам необходимо изменить разрешение в игре. Для этого сделайте следующее:
В случае если проблема не решилась, то выставьте разрешение еще ниже заданного. Делайте это пока игра не запуститься.
Постоянно вылетает ошибка с сообщением “Не удалось найти игру”
Данная ошибка является самой частой среди игроков в CS GO. Почему она появляется – точно никто не знает. У нее может быть целая куча причин для этого. Давайте посмотрим на самые распространенные из них:
Теперь давайте взглянем на решения для этой ошибки:
Ошибка “Couldn’t allocate any server IP port” при использовании готового сервера
Убедитесь, что другие программы не используют тот же порт, что использует этот сервер. Обычно такие сервера пользуются портами 27015 и 27016. Так что если какае-то утилита пользуется им, то вы можете получать такую ошибку, так как он недоступен.
Давайте рассмотрим небольшой список этих утилит:
и тому подобные приложения которые исподьзуют или блокируют данный порт. Как возможное решение просто отключите эти утилиты и попробуйте запустить Counter Strike Global Offensive.
WordPress.org
Русский
Поддержка → Проблемы и решения → Что за ошибки в консоли и как их исправит?
Что за ошибки в консоли и как их исправит?
Когда на сайт осуществлён вход от имени администратора, и сверху показывается панель wordpress, то в консоли пишутся две ошибки
Если зайти на сайт в режиме инкогнито в гугл хром, то эти ошибки не пишутся.
1. Что это за ошибки?
2. Как их исправить?
Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]
Ошибки связаны с верхней панелью администратора.
Ошибка в теме.
Тему писал сам
как эту ошибку исправить?
Тему писал сам
как эту ошибку исправить?
Такие заявления вызывает скорее сожаление, чем уважение. Тем более если после такого порыва энтузиазма авторы #своятемабезплагинов 🙂 приходят просить помощь у сообщества.
а где её ещё просить?
А вам её уже оказали. Причем дали коренное решение проблемы. Если Вы не поняли этой помощи попробую растолковать более четко:
Темы для WP находятся здесь. Неужели не из чего выбрать и это заставило Вас изобретать велосипед, в устройстве которого никто кроме вас не разберётся и разбираться не захочет?. И я уверен — это не первая и не последняя проблема, с которой Вы столкнулись или еще столкнетесь в #своятемабезплагинов 🙂 и останетесь без поддержки.
Простите за откровенность, но лучше горькая правда, чем сладкая ложь.
Ошибки и как их решить в кс го
Описание
Counter-Strike: Global Offensive — масштабный проект, который имеет миллионную аудиторию и она постепенно увеличивается. Несмотря на это, в ней есть гигантское количество ошибок, которые приходится решать только самому пользователю. Искоренить их полностью невозможно, ведь пока убирается одна, появляется еще две. Это актуально для любого масштабного проекта, поэтому нападать на Valve, в таком случае, не имеет особого смысла. Про решение ошибок в Steam и стоит поговорить.
Кс го ошибка fatal error
Это достаточно распространенная ошибка, которая не позволяет запустить на компьютере саму CS:GO. Она может появляться по самым разным причинам. Решить ее можно следующими способами:
Это главные способы решения, которые должны помочь избавиться от Fatal Error.
Ошибка вака в кс го
Многие пользователи знакомы с такой системой, как VAC. Она призвана бороться с нечестными игроками. Разумеется, у нее есть и свои недостатки. Один из них — появление соответствующей ошибки. Появляется она из-за того, что VAC не может проверить всю сессию и требует нормализовать его работу. Делается это весьма просто:
Выполнив эти действия, можно попробовать вновь открыть игру и все должно нормализоваться, а ошибка исчезнет.
Ошибка кс го engine error
Такая ошибка, как Engine Error, также представляет собой огромную проблему. Она может закрывать CS:GO из-за чего появляются проблемы в самом игровом процессе. Ее можно решить разными способами:
Это три главных способа того, как можно бороться с такой ошибкой.
Кс го ошибка pure server file
Это весьма критическая ошибка, которая не позволит открыть CS:GO и она может появляться из-за появления проблем, связанных с файлами игры. Поэтому ее можно исправить, используя следующие способы:
Это три самых эффективных способа решения ошибка Pure Server.
VPK ошибка кс го
Еще в Counter-Strike: Global Offensive может появляться ошибка VPK. Как правило, подобные проблемы появляются в том случае, если в файлы игры было установлено то, чего там не должно было быть, например, вещи со стороннего сервера. Чтобы избавиться от этой ошибки, необходимо сделать следующее:
Также должна помочь переустановка самой игры на компьютер. Подобные методы решения указывает сама компания Valve на официальном сайте.
Ошибка кс го d3d device
Ошибка, которая носит название D3D Device, может появляться лишь в том случае, когда у пользователя появляются проблемы с видеокартой. Они решаются так:
Именно так решается эта ошибка в Counter-Strike: Global Offensive.