我正在编写一个小型客户端/服务器应用程序,它在客户端上使用ncurses
作为TUI工具包。客户端是多线程的,有一个用于与服务器通信的线程(通过套接字)和一个处理UI的线程。我发现了一个错误,我想按照客户的指示来查看问题出在哪里。如何使用gdb有效地调试多线程curses客户端 - 服务器应用程序?
只运行在gdb
客户端不起作用,因为gdb
使用相同的终端作为客户端,从而输出全乱了,这使得它真的很难读的gdb
输出,而且似乎也干扰curses
(例如用halfdelay
模式,通过我不能给任何按键发送到客户端中的指令时,因为每次节目降至gdb
的时间后,少量)。
是否有办法在“专用终端”中运行gdb
?我应该使用不同的方法来调试这个应用程序吗?你有什么建议,我该如何减少这个特定情况下的障碍数?
实际的错误就是UI,一定数量的动作后(并在完全确定方式),不更新,但对于一个额外的按键等待(这不应该是因为我已经设置了halfdelay
模式来避免这种情况)。我想知道当时客户在做什么。
@downvoter护理解释? – Bakuriu 2016-10-09 12:49:33