当gtk下拉激活时,调试不可能

时间:2014-08-29 19:32:08

标签: linux debugging gdb gtk

我有一个窗口,有几个Gtk-2.0小部件。其中一个是GtkEntry,连接了相应的GtkCompletion。

我需要调试在GtkCompletion显示的下拉列表中选择('匹配'事件)时调用的代码。所以我设置断点,激活选择,整个桌面挂起。我找到的唯一形式是Ctl-Alt-Backspace,并删除gdb实例。

当发生这种情况时,整个Windows管理器仍然像下拉列表仍处于活动状态一样 - 仅响应Ctl-Alt函数,如Ctl-Alt-F2。

我尝试了--sync命令行选项,但这并没有任何区别。虽然似乎有一些(相当复杂的)解决方案,例如运行嵌套的Window服务器或远程调试,但我无法想象没有更优雅的解决方案。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我一直这样做。

您需要抓住另一台笔记本电脑或另一台服务器上的控制台,然后将ssh插入主桌面/笔记本电脑。在主桌面/笔记本电脑上启动GTK应用程序,然后通过其他笔记本电脑/机器的连接将gdb连接到它。

然后,您将在主屏幕上运行gtk应用程序,并从单独的连接进行调试,而不会干扰您的主显示器。

编辑:我看到你已经考虑过远程调试,但根据我的经验,这并不是那么困难。我旁边的台上还有另一台笔记本电脑,用于调试我的X应用程序。