gdb不接受用户输入
发布时间:2020-12-16 07:00:24 所属栏目:百科 来源:网络整理
导读:我目前正在关注如何使用 this C program如何使用程序集和gdb,但是我遇到了一个问题.这是我编译和运行gdb的方法: chiggins@host:~/assem$gcc -ggdb -o SimpleDemo SimpleDemo.cchiggins@host:~/assem$gdb ./SimpleDemoGNU gdb (Ubuntu/Linaro 7.4-2012.04-0u
我目前正在关注如何使用
this C program如何使用程序集和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 = %dn",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=PID demo demo Sum of 10+20 = 30 Child exited with status 0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |