Gdb - Как автоматически запустить исполняемый файл?
Я бы хотел, чтобы gdb
сразу запустил исполняемый файл, как если бы я набрал "run",
(мотивация: мне не нравится вводить "run" ).
Один из способов - передать команду gdb
следующим образом:
$ echo run | gdb myApp
Но проблема с этим подходом заключается в том, что вы теряете интерактивность с gdb
,
например. если срабатывает точка останова или myApp
, gdb
завершает работу.
Этот метод обсуждается здесь.
Глядя на опции в --help
, я не вижу способа сделать это, но, возможно, мне что-то не хватает.
Ответы
Ответ 1
gdb -ex run ./a.out
Если вам нужно передать аргументы a.out
:
gdb -ex run --args ./a.out arg1 arg2 ...
EDIT:
Orion говорит, что это не работает на 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
- одно из возможных решений. Просто не забудьте прочитать это.
Ответ 2
Я бы использовал gdb- script:
gdb -x your-script
где your- script содержит что-то вроде:
file a.out
b main
r
после этого у вас есть обычная интерактивная подсказка gdb
ИЗМЕНИТЬ
вот оптимизация для действительно ленивых:
... и gdb автоматически загружает и выполняет содержимое .gdbinit.
Ответ 3
(echo r ; cat) | gdb a.out
Кошка позволяет вам печатать после разрыва gdb.
Ответ 4
start - еще один хороший вариант:
gdb -ex start ./a.out
Это похоже на run, но также устанавливает временную точку останова в main
и останавливается там.
Эта временная точка останова деактивируется после ее удара.
Ответ 5
gdb -x <(echo run) --args $program $args