Как автоматически выполнить исполняемый файл в GDB?

Я хотел бы иметь gdb сразу выполните исполняемый файл, как будто я ввел "выполненный" (мотивация: Мне не нравится вводить "выполненный").

Один путь состоит в том, чтобы передать команду по каналу к gdb как это:

$ echo run | gdb myApp

Но проблема с этим подходом состоит в том, что Вы теряете интерактивность с gdb, например, если точка останова инициировала или myApp катастрофические отказы, gdb выходы. Этот метод обсужден здесь.

Рассмотрение опций в --help, Я не вижу способ сделать это, но возможно я пропускаю что-то.

80
задан Ciro Santilli 新疆改造中心法轮功六四事件 23 September 2018 в 11:15
поделиться

2 ответа

gdb -ex run ./a.out

Если вам нужно пройти аргументы в AT :

gdb -ex run --args ./a.out arg1 arg2 ...

Редактировать: Орион говорит, что это не работает на Mac OSX.

Флаг -EX был доступен с GDB-6.4 (выпущен в 2005 году), но OSX использует вилку Apple GDB, а последний Xcode для Leopard содержит GDB 6.3.50-20050815 (Apple Version GDB-967) , поэтому вы не повезете.

Создание тока GDB-7.0.1 Выпуск - это одно возможное решение. Просто обязательно прочитайте это .

116
ответ дан 24 November 2019 в 09:53
поделиться

Я бы использовал GDB-скрипт:

gdb -x your-script

где ваш сценарий содержит что-то вроде:

file a.out
b main
r

после этого у вас есть обычный интерактивный GDB-приглашение

Редактировать :

Вот оптимизация для по-настоящему ленива:

  1. Сохранить скрипт как .gdbinit в рабочем каталоге .
  2. После этого вы просто запустите GDB в виде

    GDB

... и GDB автоматически загружают и выполняет содержимое .gdbinit.

22
ответ дан 24 November 2019 в 09:53
поделиться
Другие вопросы по тегам:

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