chiggins@host:~/assem$gcc -ggdb -o SimpleDemo SimpleDemo.cchiggins@host:~/assem$gdb ./SimpleDemoGNU gdb (Ubuntu/linaro 7.4-2012.04-0ubuntu2) 7.4-2012.04copyright (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) List4 int add(int x,int y)5 {6 int z =10;78 z = x + y;9 return z;10 }1112 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];1819 gets(buffer);20 puts(buffer);2122 c = add(a,b);23(gdb)24 printf("Sum of %d+%d = %d\n",a,b,c);2526 exit(0);2728 }(gdb) run 10 20Starting program: /home/chiggins/assem/SimpleDemo 10 20demo
现在从最后输入“demo”的地方开始,这就是程序应该接受用户输入的地方.但是当我在输入后按回车键时,没有任何反应.我无法ctrl c退出程序,无法做任何事情.我最终不得不从另一个会话中删除该进程,以便我可以控制回来.任何想法为什么gdb这样做,或者我可能做错了什么?
谢谢!
解决方法 我不确定为什么这对你不起作用;它按预期工作……尽管如此,我发现在单独的终端中运行执行交互式I / O的程序更容易,也许它会对你有所帮助.
在一个终端,
$gdbserver --multi localhost:4242Listening on port 4242
而在另一个,
$gdb ./SimpleDemo(gdb) target extended-remote localhost:4242Remote deBUGging using localhost:4242(gdb) run 10 20
回到运行gdbserver的终端,
Remote deBUGging from host 127.0.0.1Process ./SimpleDemo created; pID=PIDdemodemoSum of 10+20 = 30Child exited with status 0总结
以上是内存溢出为你收集整理的gdb不接受用户输入全部内容,希望文章能够帮你解决gdb不接受用户输入所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)