передача python -c к запущенной программе в gdb - PullRequest
0 голосов
/ 29 апреля 2018

В настоящее время я играю с этой программой на C (да, я знаю ее вул).

int main(int argc, char **argv)
{
    char buffer[64];
    gets(buffer);
}

Когда я помещаю его в gdb, я хочу запустить его и передать ему команду python. например,

gdb -q test
Reading symbols from test...(no debugging symbols found)...done.
(gdb) r
Starting program: /tmp/test 
python -c 'print "A" * 100'
[Inferior 1 (process 14912) exited normally]
(gdb) r
Starting program: /tmp/test 
`python -c 'print "A" * 100'`
[Inferior 1 (process 14917) exited normally]
(gdb) 

Действительно ли возможно передать команду python программе после ее запуска? Или лучше просто сделать это из GDB и передать это?

Приветствия

1 Ответ

0 голосов
/ 30 апреля 2018

Действительно ли возможно передать команду python программе после запуска этого?

Да, но вы делаете это неправильно. Что делает ваша команда:

/tmp/test `python  -c 'print "A" * 100'`

, что эквивалентно:

/tmp/test AAAAA...A

Что вы хотите:

(gdb) run <(python -c 'print "A" * 100')

что эквивалентно:

echo "AAAAA...A" | /tmp/test
...