我正在用C语言编写客户端/服务器程序。
我的客户端有一个从stdin读取输入的线程,它只是一个while(1)循环来读取stdin的输入。每当它读取一行时,它就会将它传递给另一个处理消息解析和框架的线程。
当我输入gdb时,命令行被gdb提示符占用,我无法再将行输入到stdin。
有办法吗? (我不想将stdin重定向到输入文件,因为我尝试过这种方法并且它不起作用)
答案 0 :(得分:5)
在一个终端中运行您的程序,并从另一个终端的gdb连接到它。
要附加到正在运行的程序,请找到要附加到的程序的进程ID(PID),然后执行gdb <executable> <PID>
。
答案 1 :(得分:0)
作为 Jonathan Reinhart 回答的补充,这里有一个单行程序,可以按名称附加到正在运行的程序上:
gdb -p $(pgrep <executable-name>)