【问题标题】:Debugging impossible when gtk dropdown activegtk 下拉菜单活动时无法调试
【发布时间】:2014-08-29 19:32:07
【问题描述】:

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

我需要调试在 GtkCompletion 显示的下拉列表中进行选择(“匹配”事件)时调用的代码。于是我设置了一个断点,激活了选择,整个桌面就挂了。我发现唯一能出来的形式是 Ctl-Alt-Backspace,然后删除 gdb 实例。

当这种情况发生时,整个窗口管理器就好像下拉菜单仍然处于活动状态一样 - 仅响应 Ctl-Alt 功能,如 Ctl-Alt-F2。

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

有什么建议吗?

【问题讨论】:

    标签: linux debugging gdb gtk


    【解决方案1】:

    我一直这样做。

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

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

    编辑:我看到您已经考虑过远程调试,但根据我的经验,这真的没那么难。我只是在我旁边的桌子上放了另一台笔记本电脑,用于调试我的 X 应用程序。

    【讨论】:

    • 谢谢山姆。在发布问题之前和之后,我浏览了数十个网站,都无法真正找到关于 如何 确切地做到这一点的明确指示。但也许我过于专注于下拉问题,应该用更笼统的术语四处看看。尽管如此,我认为这个问题足够普遍,以至于有一个更优雅的解决方案。我不是那么有经验的程序员...感谢您的回复!
    猜你喜欢
    • 1970-01-01
    • 2019-06-16
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多