Как отладить код C с помощью lldb в macOS Mojave? - PullRequest
0 голосов
/ 12 февраля 2019

Я использовал gdb в Linux, но теперь я переключился на Mac и прочитал, что lldb является альтернативой gdb на устройствах Apple.Тем не менее, я получаю сообщение об ошибке при попытке использовать lldb (я также пытался gdb, но он не распознает файлы как исполняемые).Когда я пытаюсь использовать его, я получаю следующие ошибки:

sanad@Sanads-MBP  ~/Desktop/cppLab  lldb ./a.out         ✔  623  01:43:54
(lldb) target create "./a.out"
Traceback (most recent call last):
  File "", line 1, in 
  File "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python/lldb/__init__.py", line 98, in 
    import six
ImportError: No module named six
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'run_one_line' is not defined
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'run_one_line' is not defined

… и еще дюжина именных ошибок точно так же, пока вывод не закончится:

Current executable set to './a.out' (x86_64).
(lldb)

1 Ответ

0 голосов
/ 13 апреля 2019

lldb ссылается на Систему Python.framework и может загружать другие модули Python, только если они были собраны вместе с этой библиотекой Python.Оказывается, то, как работает Python, если вы не укажете ему явно, где искать модули Python, будет выглядеть рядом с двоичным файлом «python», который он находит в вашем PATH.Так что, если вы установили другой python и имеете его в своем PATH, то python из lldb попытается загрузить модули Python, которые на самом деле не будут загружаться должным образом.Текущий обходной путь - это просто очистить установленный вручную Python от переменной среды PATH в любом окне терминала, в котором вы хотите запустить lldb из

Это было недавно исправлено (r356819 на llvm.org) и превратит его вВыпуск Xcode в ближайшее время.

...