Задать вопрос
@xcs9

MacOS 13.4.1 XCode 14.3.1 lldb не показывает std::string, как исправить?

Пробую написать небольшой консольный проект на с++ в XCode
Рабочая машина топовый MacBool Pro 16 Intel 2019, основая работа в виртуалках Windows и Linux через Parallels, обновлять OS пока не вижу необходимости, хотя предлагает Tahoe 26.4.1. XCode поставил по совместимости с версией OS.
Проблема - отладчик не показывает содержимое std::string. Погуглил, есть такой баг именно в той версии LLDB, что идет с XCode 14.3. Пишут, что надо обновить Command Tools до 15. Или собирать LLDB самому.
Вопрос - как это аккуратно сделать, без обновления XCode? Команда softwareupdate --list в списке доступных обновлений тулс не предлагает. Значит ли это, что более свежие тулс с моей системой несовместимы? Или пробовать вручную сгрузить Command Line Tools for Xcode 15 dmg, удалить старую версию тулс и установить скачанную?
Попутно - стоит ли обновлять MacOS на Тахо? Ухудшится ли скорость работы, автономность? Комп исключительно для работы, новые фичи в оси не интересуют, обновление только для установки свежих инструментов.
== Или есть способ просто решить проблему в настройках XCode?

=== Update ===
1 Настройка Guard Malloc в схеме не помогла, возможно, это был случайный эффект в какой-то минорной версии XCode
2 Command Line Tools 15 с поправленный lldb поставить можно, но настроить XCode на их использование нельзя, XCode всегда будет использовать свои. Выбор версии CLT в Settings->Locations есть только в том случае, если найдена другая XCode. Использование отдельно установленных CLT возможно только через терминал. Возможно, какой-то хак и есть, но простого пути нет.
3 Проблема решилась установкой XCode 15.2, которая стала доступна после апдейта ОС до 13.7.8. Это максимум, что можно выжать из Вентуры
  • Вопрос задан
  • 125 просмотров
Подписаться 1 Средний 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unreal Engine + ИИ
    9 месяцев
    Далее
  • Stepik
    Профессия: Разработчик C++ (Junior)
    2 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
Там есть обходной путь без апдейтов — в Xcode открой Edit Scheme → Diagnostics и убери галку "Enable Guard Malloc". При включённом Guard Malloc LLDB в Xcode 14.3.x криво работает с std::string, это известный workaround.

По CLT: softwareupdate не предлагает 15-е тулсы потому что они требуют 13.5 минимум, ты на 13.4.1 — отсюда тишина. Если хочется всё-таки обновить CLT — достаточно дотянуться до Ventura 13.5 или 13.6 (патч, не смена мажора), тогда CLT 15 с developer.apple.com встанет нормально. До Тахо апгрейдиться необязательно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы