我正在编写一个小型客户端/服务器应用程序,ncurses
用作客户端上的 TUI 工具包。客户端是多线程的,有一个用于与服务器通信(通过套接字)的线程和一个处理 UI 的线程。我发现了一个错误,我想逐步查看客户的说明,看看问题出在哪里1。
简单地运行客户端gdb
是行不通的,因为gdb
它使用与客户端相同的终端,因此输出全部混乱,这使得读取输出非常困难,gdb
而且似乎也干扰curses
(例如halfdelay
模式,在步进时通过说明,我无法向客户端发送任何按键,因为每次程序都会gdb
在一小段时间后下降。)
有没有办法gdb
在“专用终端”中运行?我应该使用不同的方法来调试这个应用程序吗?您对在这种特定情况下如何减少障碍的数量有什么建议吗?
1实际的错误是UI,在一定数量的动作之后(并且以完全确定的方式),没有更新,而是等待额外的按键(这不应该是需要的,因为我已经halfdelay
精确地设置了模式以避免这种情况) . 我想知道客户在那一刻在做什么。