【发布时间】:2017-12-10 16:43:41
【问题描述】:
您好,我正在尝试调试使用命令运行的程序
cat 1.txt - | ./game
我不确定如何使用该命令启动gdb。我已经看到了有关如何通过管道传输到gdb 的答案,但是当我首先想通过管道传输文件内容然后使用标准输入(这就是破折号所代表的)时,它似乎不起作用。有人可以帮忙吗?
【问题讨论】:
标签: bash debugging gdb pipe stdin
您好,我正在尝试调试使用命令运行的程序
cat 1.txt - | ./game
我不确定如何使用该命令启动gdb。我已经看到了有关如何通过管道传输到gdb 的答案,但是当我首先想通过管道传输文件内容然后使用标准输入(这就是破折号所代表的)时,它似乎不起作用。有人可以帮忙吗?
【问题讨论】:
标签: bash debugging gdb pipe stdin
cat 1.txt - | ./game
这个cat 毫无意义,你可以很容易地做到这一点:./game < 1.txt。
这也可以用来在GDB下运行game:
gdb ./game
(gdb) run < 1.txt
另见this answer。
【讨论】:
cat 并非毫无意义。如果没有破折号,程序会循环打印消息并等待输入,因为代码看起来像这样:while (1) { printf("message"); if (scanf("%d", &var) > 0 && var >= 0 ) { break; } getchar();}