Невозможно проверить переменную std :: string в lldb - PullRequest
0 голосов
/ 27 октября 2019

Когда я пытаюсь проверить переменную std :: string, используя LLDB, я получаю сообщение "error: error at синтаксический анализ строки резюме".

#include <iostream>
#include <string>

int main() {
    std::string a{"123"};
    std::cout << a << std::endl;
    return 0;
}
Process 4492 stopped
* thread #1, name = 'main', stop reason = breakpoint 1.1
    frame #0: 0x00005555555551e9 main`main at main.cpp:6:1
   3    
   4    int main() {
   5        std::string a{"123"};
-> 6        std::cout << a << std::endl;
   7        return 0;
   8    }
(lldb) v a
(std::string) a = error: summary string parsing error

Дополнительная информация:

$ clang++ --version
clang version 8.0.1 (tags/RELEASE_801/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
$ lldb --version
lldb version 8.0.1
uname -s -r -m -o
Linux 5.3.5-arch1-1-ARCH x86_64 GNU/Linux

1 Ответ

0 голосов
/ 08 ноября 2019

Попробуйте перекомпилировать ваш исходный код с флагом -fstandalone-debug. У меня была такая же проблема, когда я использовал lldb сегодня, и когда я пытался получить доступ к строке символ за символом, он выдавал ошибку, которая рекомендовала компилировать с этим флагом. После того, как я перекомпилировал мои двоичные файлы, lldb отлично справился со строками.

Примечание: я не уверен, работает ли этот флаг с g++, но я предполагаю, что вы компилируете с clang++, если выиспользуя lldb.

...