我有一个带有GUI的应用程序,我在命令行上直接在X服务器上运行,而不使用Windows管理器:
sudo startx app args
我试图调试应用程序并想使用gdb。如何在gdb中启动应用程序?我试过这个但是它没有用:
sudo gdb --args startx app args
答案 0 :(得分:1)
我试过这个,但它不起作用
它不起作用,因为startx
是一个shell脚本:
$ file /usr/bin/startx
/usr/bin/startx: POSIX shell script, ASCII text executable
您几乎肯定不想使用GDB调试shell脚本。
你可能想要的是正常启动应用程序,然后将 GDB附加到它:
sudo startx app args
sudo gdb -p $(pgrep app)
另请注意,从运行应用程序的同一显示器调试应用程序是不明智的:如果在应用程序抓取 X服务器的上下文中设置断点,那么所有按键操作将转到该应用程序,并且无法继续该应用程序。