LINUX.ORG.RU

Крашится vscode

 


0

1

Добрый день. Подскажите - может кто сталкивался?

После недавнего обновления стал закрываться vscode. Oracle Linux 8, GNOME.

Это происходит, например, при запуске по F5 проекта на C, в котором есть синтаксическая ошибка. Успевает показать в выводе инфу про ошибку и сразу весь закрывается.

Аналогично закрывается при попытке отключить некоторые расширения.

Почистил все расширения из терминала, оставил минимум - проблема не ушла. В логах ничего понятного не нашел, есть лишь нечитаемый бинарный дамп.



Последнее исправление: Paka_RD (всего исправлений: 1)

Обзор от ИИ

Скорее всего, произошло повреждение кэша расширения (например, C/C++ от Microsoft), краш языкового сервера из-за тяжелого кода или нехватка оперативной памяти. Поскольку VS Code закрывается даже при попытке зайти в меню расширений, сбой происходит на уровне основного процесса или из-за циклической ошибки UI. Вот пошаговые действия для решения проблемы, от простых к радикальным:

  1. Запуск в безопасном режиме (без расширений) Если вы отключали расширения через интерфейс и редактор падал, попробуйте запустить его через терминал с полным запретом на их загрузку:
code --disable-extensions

Если запустился стабильно: Проблема точно в одном из плагинов (скорее всего, ms-vscode.cpptools ). Перейдите во вкладку расширений и удалите последние установленные или обновите их.Если все равно падает: Дело в кэше, конфигурации или самой системе. 2. Очистка кэша и поврежденных данных Часто после ошибок в проекте ломается локальный кэш рабочей области (Workspace Data). Очистите его:

  1. Закройте VS Code.
  2. Удалите или переименуйте папку с кэшем (в терминале):
rm -rf ~/.config/Code/Cache
rm -rf ~/.config/Code/CachedData
  1. Если не помогло, временно переименуйте папку с настройками сессий (это сбросит открытые окна, но сохранит настройки):
mv ~/.config/Code/User/workspaceStorage ~/.config/Code/User/workspaceStorage_backup
  1. Проверка нехватки памяти (OOM) и системных логовПри сборке или индексации больших проектов на C++ (особенно с использованием тяжелых библиотек вроде Boost или OpenCV) процессы clangd или cpptools могут поглотить всю оперативную память. Linux в таких случаях принудительно закрывает программу. Проверьте системный лог сразу после очередного вылета:
dmesg -T | grep -i -E 'kill|oom'

Или просмотрите логи системы:

journalctl -p 3 -xb

Если вы увидите строки в духе Out of memory: Kill process… (code), вам нужно увеличить файл подкачки (Swap) или ограничить количество потоков индексации в настройках расширения C++.

  1. Просмотр внутренних логов VS CodeЗапустите редактор через терминал в режиме логирования:
code --verbose

Внимательно следите за выводом в терминале в момент падения. Обратите внимание на последние строки перед закрытием — там будет указан конкретный файл или библиотека (например, Segmentation fault), вызвавшая сбой.

  1. Ручное удаление расширения C++ через консольЕсли виновато расширение C++, но интерфейс не дает его удалить, сделайте это через терминал:
code --uninstall-extension ms-vscode.cpptools

(Если вы используете clangd, замените на llvm-vs-code-extensions.vscode-clangd).

Если вы хотите разобраться точнее, пришлите: Что вывело в терминал после запуска команды code –verbose в момент падения? Какая именно ошибка в проекте предшествовала первому вылету?Какой дистрибутив Linux вы используете (Ubuntu, Arch, Fedora) и как установлен VS Code (через .deb/.rpm, snap или flatpak)?

P.S. от оператора AI т.е. меня, старался отформатировать, но пока что-то не очень, так что не гневаться!

dobrbiu
()
Ответ на: комментарий от dobrbiu

Спасибо большое! Про всякие его кэши я не подумал, завтра попробую.

Если код без ошибок, то он его нормально запускает и ходит по брекпоинтам.

Помнится, была у него ошибка в гноме - не мог открыть окно с выбором папки и падал.

Paka_RD
() автор топика

Попробуй поиграть с inotify watches, особенно если много файлов и много открытых файлов.

Но для начала попробуй закрыть все проекты открытые и файлы, и открыть например просто директорию с одним файлом.

Вот такие значения у меня, мне хватает:

fs.inotify.max_user_watches=1524288
fs.inotify.max_user_instances=2048
fs.inotify.max_queued_events=52768
anonymous_sama ★★★★★
()
Последнее исправление: anonymous_sama (всего исправлений: 1)

Сбросил все кэши, запустил без расширений. Создал проект-хелловорд из одного файла. Поведение - аналогичное, закрывается при запуске кода.

Paka_RD
() автор топика
Ответ на: комментарий от Paka_RD

Давай я с гугло-ИИ-шкой помогу. Сделай

code --log trace

Чтоб оно писало подробный лог своего падения (и да, урони его), затем иди в

~/.config/Code/logs

И ищи самую свежую папку и в ней уже смотри по логам. Тебя (согласно ИИ) интересуют в первую очередь логи main.log и в подпапке renderer1.log

ЗЫ

Можешь скинуть их конец, чтоб точно увидеть что там.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 2)
Ответ на: комментарий от peregrine

Я в эти логи первым делом слазил, но там лишь название файла дампа и сам бинарный дамп.

Снес vscode, всё подтер. Установил. Запустил без расширений и с логами –verbose

Падает также. Даже без файлов - просто по клику на «about» в меню.

При закрытии пишет две строки: 0903/174235.752552:ERROR:third_party/crashpad/crashpad/snapshot/elf/elf_dynamic_array_reader.h:64] tag not found [0903/174235.762045:ERROR:third_party/crashpad/crashpad/util/file/directory_reader_posix.cc:43] opendir /home/pak/.config/Code/Crashpad/attachments/02290654-8dbe-424f-93ee-08157801c5c9: No such file or directory (2)

Paka_RD
() автор топика
Ответ на: комментарий от Paka_RD

Точнее, вот такие:

0903/174235.752552:ERROR:third_party/crashpad/crashpad/snapshot/elf/elf_dynamic_array_reader.h:64] tag not found 

[0903/174235.762045:ERROR:third_party/crashpad/crashpad/util/file/directory_reader_posix.cc:43] opendir /home/pak/.config/Code/Crashpad/attachments/02290654-8dbe-424f-93ee-08157801c5c9: No such file or directory (2)
Paka_RD
() автор топика
Ответ на: комментарий от hedgehog_alex

И это тоже попробовал. И даже оставил. Но вот сразу,сходу, не нашел как там хелловорд в дебаге запустить :) Потом поразбираюсь.

Paka_RD
() автор топика
Ответ на: комментарий от anonymous

Удалил 136, почистил, поставил 126 (середина лета).

Всё аналогично: Меню->«About»->крэш.

Может что-то в ОС/Гноме обновилось? Но как узнать?

Paka_RD
() автор топика
Ответ на: комментарий от Paka_RD

Запись о последнем действии (вызов - ошибка):

[129171:0904/135445.276801:INFO:CONSOLE:442] "%cTRACE color: #888 CommandService#executeCommand workbench.action.showAboutDialog", source: vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js (442)

[0904/135445.315846:ERROR:third_party/crashpad/crashpad/util/file/directory_reader_posix.cc:43] opendir /home/pak/.config/Code/Crashpad/attachments/3f8ced6f-b361-4641-8f88-750095d15df8: No such file or directory (2)

причем в attachments ничего нету, но есть по соседству в completed:

3f8ced6f-b361-4641-8f88-750095d15df8.dmp (бинарный)
3f8ced6f-b361-4641-8f88-750095d15df8.meta (бинарный - там этот идентификатор)
Paka_RD
() автор топика
Ответ на: комментарий от Paka_RD

crashpad

Открывай дамп да гляди что в нём

У тебя вместо текстового редактора веб браузер.

LINUX-ORG-RU ★★★★★
()

Причина оказалась вот в чём:

Падение происходит при попытке вывода электроном доп.окна в модальном режиме («about», «есть ошибки, закрыть?/игнорировать?»). А-ля AFX_MESSAGE_BOX в винде.

Откатил на начало 2025. Теперь работает. У этой версии всё верхнее меню на рамке гнома и модальные окна тоже гнома.

Т.е. конфликт между гномом и электроном-позитроном. Есть ли какое-то более правильное решение - не знаю.

Paka_RD
() автор топика
Ответ на: комментарий от anonymous

На кде это уг так же падало в том же месте. Решилось обновлениями.

anonymous
()
Ответ на: комментарий от Paka_RD

После недавнего обновления стал закрываться vscode. Oracle Linux 8, GNOME.

Думаешь, на форуме все телепаты и могут сами додуматься до версии вскода, на которую ты обновился?

Откатил на начало 2025. Теперь работает. У этой версии всё верхнее меню на рамке гнома и модальные окна тоже гнома.

ThinkPad L420, Debian 13, GNOME, VSCode 1.135.0 - полет нормальный.

В ссылке, которую дали выше (https://github.com/microsoft/vscode/issues/334211) указано, что ошибка начала появляться после версии 1.136.0.

ПС. в последнее время действительно мелкомягкие что-то зачистили с обновами вскода и у меня это не вызвало радостных настроений.

MichIs
()
Ответ на: комментарий от Paka_RD

Ман или help по программе то читать надо. ИИ вот читала, я тоже глянул перед тем, как постить (да я проверяю все команды за ИИ-шкой, людьми на форумах и прочем, видимо старомоден и не привык бездумно копипастить), смотри какая там шляпа:

--verbose                               Print verbose output (implies
                                          --wait).
--log <level>                           Log level to use. Default is 'info'.
                                          Allowed values are 'critical',
                                          'error', 'warn', 'info', 'debug',
                                          'trace', 'off'. You can also
                                          configure the log level of an
                                          extension by passing extension id and
                                          log level in the following format:
                                          '${publisher}.${name}:${logLevel}'.
                                          For example: 'vscode.csharp:trace'.
                                          Can receive one or more such
                                          entries.

Нафиг твой verbose никому не сдался. Он не то делает (в консольку строчит а не в логи). Надо именно с --log trace пускать было. Ну да ладно, у тебя видно что падает либо из-за вялого, либо из-за проблем с безопасностью (что похоже на правду больше всего). Как ты установил, что модальное окно виновато, а не попытка сделать ptrace в каком-нибудь плагине?

PS

Надеюсь что у тебя хотя-бы RPM пакет стоит, а не снапофлетпаковская фигня, которая конфликтует с SELinux/AppArmor на ровном месте.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 2)
Ответ на: комментарий от peregrine

Модальное окно, т.к. проблема сжалась до ситувции «пустой vscode, без дополнений и проекта» -> «окно About». Проблема именно в отображении окон.

Paka_RD
() автор топика
Ответ на: комментарий от hedgehog_alex

Обычно помогает

неа. Ты забыл "а теперь берём отпуск на месяц, чтобы погрузиться в elisp, натренировать «пальцы пианиста» и создать конфиг, который хотя бы на йоту приблизится к тому, что было в vscode.

seiken ★★★★★
()
Ответ на: комментарий от Paka_RD

Тогда, если сможешь зайти в настройки, то можешь, как ИИ советует сделать так:

1. Откройте настройки (Ctrl + ,).
2. Введите в поиске: Dialog Style.
3. Переключите параметр с native на custom (в settings.json это строка: "window.dialogStyle": "custom").
4. Также найдите параметр Title Bar Style и измените его с native на custom ("window.titleBarStyle": "custom").
5. Полностью перезапустите VS Code.

Костыльненько конечно, но всяко лучше крашей и старых версий.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Во как, значит предусмотрели такую нестыковочку GUI-я. Спасибо, попробую!

Paka_RD
() автор топика
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария