Почему GDB игнорирует условие разрыва? - PullRequest
0 голосов
/ 26 апреля 2019

Я использую gdb для отладки приложения Qt GUI.Приложение пересекает два экрана, и мне нужно разрывать, когда мышь нажимается на первом экране, я устанавливаю точку останова следующим образом:

(gdb) info b
Num     Type           Disp Enb Address            What
3       breakpoint     keep y   0x00007f7cb1645c7c in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
                                                   at kernel/qguiapplication.cpp:1699
        stop only if (e->globalPos.xp < 1920 && e->buttons)
        breakpoint already hit 5 times
(gdb) p e->globalPos.xp < 1920 && e->buttons
Can't do that binary op on that type
(gdb) p e->globalPos.xp < 1920
$6 = false

Однако, GDB всегда ломает точку независимо от того, как e-> globalPos.xpизменилось!Даже если я напечатаю выражение, и оно показывает ложь, перерыв все еще работает.Любая помощь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...