GDB в одной команде

Я не знаю, как вам раньше удавалось установить fglrx под ядро ​​4.x, но fglrx официально не поддерживает ядро ​​4.x. До недавнего времени вы могли пропатчить установщик для работы с последним ядром:

https://bluehatrecord.wordpress.com/2015/09/17/installing-the-privateetary-amd-catalyst-15-9-fglrx- 15-201-driver-on-fedora-22-with-linux-kernel-4-1-6 /

Однако недавно было обнаружено, что драйвер ломается при компиляции с помощью gcc5 под Linux 4.2 или выше. Поскольку Fedora 23 по умолчанию использует ядро ​​4.2.x и gcc5, решения нет.

Можно было бы вручную скомпилировать gcc49 и использовать его для компиляции драйвера, но мне не удалось получить эту работу лично.

Пока я в одной лодке.

5
14.07.2018, 16:38
3 ответа

Вы можете передавать команды gdb в командной строке с опцией -ex. Вам нужно повторить это для каждой команды. Это может быть полезно, когда вашей программе нужно прочитать стандартный ввод, поэтому вы не хотите его перенаправлять. Например, дляod -c

echo abc |
gdb -ex 'break main' -ex 'run -c' -ex bt -ex cont -ex quit  od

Так что, в частности, для вашего вопроса вы можете использовать:

gdb -ex 'run arg1 arg2' -ex bt -ex quit./program
16
27.01.2020, 20:32

Команды можно было вводить через стандартный ввод:

#!/bin/sh
exec gdb -q <<EOF
file./program
run arg1 arg2
bt
quit
EOF

Или команды можно поместить в afileи gdbзапускать с gdb -batch -x afile, или если вы ненавидите переводы строк (и кодировщик обслуживания )с причудливой оболочкой, вы можете сделать все это в одном строка (другой способ выразить версию heredoc):

gdb -q <<< "file./program"$'\n'run$'\n'...
6
27.01.2020, 20:32

Чтобы передать аргументы вашей программе в командной строке GDB, используйте gdb --args.

gdb --args./program arg1 arg2
bt
1
24.05.2020, 06:29

Теги

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