繁体   English   中英

gdb不接受用户输入

[英]gdb won't accept user input

我目前正在关注如何使用这个C程序处理程序集和gdb的视频 ,但我遇到了一个问题。 这是我编译和运行gdb的方法:

chiggins@host:~/assem$ gcc -ggdb -o SimpleDemo SimpleDemo.c
chiggins@host:~/assem$ gdb ./SimpleDemo
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/chiggins/assem/SimpleDemo...done.
(gdb) list
4       int add(int x, int y)
5       {
6               int z =10;
7
8               z = x + y;
9               return z;
10      }
11
12      main(int argc, char **argv)
13      {
(gdb)
14              int a = atoi(argv[1]);
15              int b = atoi(argv[2]);
16              int c;
17              char buffer[100];
18
19              gets(buffer);
20              puts(buffer);
21
22              c = add(a,b);
23
(gdb)
24              printf("Sum of %d+%d = %d\n",a, b, c);
25
26              exit(0);
27
28      }
(gdb) run 10 20
Starting program: /home/chiggins/assem/SimpleDemo 10 20
demo

现在从最后输入“demo”的地方开始,这就是程序应该接受用户输入的地方。 但是当我在输入后按回车键时,没有任何反应。 我无法ctrl + c退出程序,无能为力。 我最终不得不从另一个会话中删除该进程,以便我可以控制回来。 任何想法为什么gdb这样做,或者我可能做错了什么?

谢谢!

我不确定为什么这对你不起作用; 它按预期工作......

尽管如此,我发现在单独的终端中运行执行交互式I / O的程序更容易,也许它会对你有所帮助。

在一个终端,

$ gdbserver --multi localhost:4242
listening on port 4242

而在另一个,

$ gdb ./SimpleDemo
(gdb) target extended-remote localhost:4242
Remote debugging using localhost:4242
(gdb) run 10 20

回到运行gdbserver的终端,

Remote debugging from host 127.0.0.1
Process ./SimpleDemo created; pid=
demo
demo
Sum of 10+20 = 30

Child exited with status 0

您是否尝试在程序中输入用户? 如果你只想在开头设置命令行参数,你可以说set args ...你可以像在程序过程中那样给出参数。

你试过这个吗?

gdb --args ./SimpleDemo 10 20

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM