GDB мгновенно завершает работу, вызывая команду bazel для отладки. - PullRequest
0 голосов
/ 24 мая 2018

Я нашел две ссылки, показывающие, как должна работать отладка с помощью gdb под bazel ( ссылка 1 , ссылка 2 ).

Обе ссылки указывают, что запускается сеанс отладкиработает при вызове следующей команды:

bazel run --compilation_mode=dbg --run_under=gdb //my:target

Когда я запускаю команду, GDB запускается просто отлично, загружая символы и все, но затем сразу завершается.Вывод такой же, как показано в здесь (из ссылки 2) .

В первой ссылке также упоминается аргумент --direct_run, но этот аргумент также не работает.GDB мгновенно завершает работу, и после вывода GDB (из предыдущей ссылки) показывается следующее сообщение:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = "en_US.ISO-8859-1",
        LC_ALL = "en_US.ISO-8859-1",
        LC_MEASUREMENT = "de_DE.UTF-8",
        LC_PAPER = "de_DE.UTF-8",
        LC_MONETARY = "de_DE.UTF-8",
        LC_NAME = "de_DE.UTF-8",
        LC_CTYPE = "en_US.ISO-8859-1",
        LC_ADDRESS = "de_DE.UTF-8",
        LC_NUMERIC = "de_DE.UTF-8",
        LC_TELEPHONE = "de_DE.UTF-8",
        LC_IDENTIFICATION = "de_DE.UTF-8",
        LC_TIME = "de_DE.UTF-8",
        LANG = "en_US.ISO-8859-1"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Что я делаю не так?Как я могу взаимодействовать с GDB?

Заранее спасибо.

1 Ответ

0 голосов
/ 24 мая 2018

Другое сообщение в этой теме (https://groups.google.com/d/msg/bazel-discuss/Mu95dnuA2MQ/I2BDu0SDGAAJ) указывает на то, что bazel не передает tty в stdin gdb. То, что вы видите, это то, что вы ожидаете, если вызовете gdb без подключенного stdin:

$ gdb -silent -nx  < /dev/null
(gdb) quit

Одним из вариантов обходного пути может быть написание сценария-оболочки, который вызывает gdb < /dev/tty.

...