使用 gdb 调试使用 startx 启动的应用程序
using gdb to debug application started using startx
我有一个带有 GUI 的应用程序,我在命令行上 运行 直接在 X 服务器中,没有使用 windows 管理器:
sudo startx app args
我正在尝试调试应用程序并想使用 gdb。如何在 gdb 中启动应用程序?我已经试过了,但它不起作用:
sudo gdb --args startx app args
I've tried this but it doesn't work
它不起作用,因为 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)
另请注意,从运行应用程序的同一显示器调试应用程序是不明智的:如果您在应用程序已 grabbed X 服务器的上下文中设置断点, 那么你所有的击键都会转到应用程序, 将无法继续应用程序。
我有一个带有 GUI 的应用程序,我在命令行上 运行 直接在 X 服务器中,没有使用 windows 管理器:
sudo startx app args
我正在尝试调试应用程序并想使用 gdb。如何在 gdb 中启动应用程序?我已经试过了,但它不起作用:
sudo gdb --args startx app args
I've tried this but it doesn't work
它不起作用,因为 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)
另请注意,从运行应用程序的同一显示器调试应用程序是不明智的:如果您在应用程序已 grabbed X 服务器的上下文中设置断点, 那么你所有的击键都会转到应用程序, 将无法继续应用程序。