如何将Qt5应用程序与Qt5调试符号链接起来?我使用的不是qmake或CMake,而是一个定制的Makefile。
我已经安装了qtbase5-dbg包(Ubuntu/apt-get),并查看了它安装的文件:
$ dpkg-query -L qtbase5-dbg
/.
/usr
/usr/lib
/usr/lib/debug
/usr/lib/debug/.build-id
/usr/lib/debug/.build-id/41
/usr/lib/debug/.build-id/41/3bc01e071e9ab5017efcbf7bb32141ee00d252.debug
/usr/lib/debug/.build-id/e0
/usr/lib/debug/.build-id/e0/2503fd33b4c52e37b27b6aa13ef11e986d27ba.debug
/usr/lib/debug/.build-id/73
/usr/lib/debug/.build-id/73/802b8d5cf3e3b3678e344bff64cbf779a33753.debug
/usr/lib/debug/.build-id/04
/usr/lib/debug/.build-id/04/e02531112cfb2f2b8ca6eb152a6c4ae4f33add.debug
/usr/lib/debug/.build-id/04/192a6729ab4790403739d97d46e2ac1f3203d7.debug
# Bunch of other similar files
/usr/lib/debug/.build-id/e7/e69cb1ea874ede7a24216ef54aa9458e5b8ef0.debug
/usr/lib/debug/.build-id/ff
/usr/lib/debug/.build-id/ff/abd7ced1a66a9bde6b0355267e0ed38e83fa5b.debug
/usr/lib/debug/.build-id/53
/usr/lib/debug/.build-id/53/070dadaef9fa7fb45640b17d77ee3aeeac7b13.debug
/usr/lib/debug/.build-id/49
/usr/lib/debug/.build-id/49/7b2ab307020f81218ae77a749826793a074134.debug
/usr/share
/usr/share/doc
/usr/share/doc/qtbase5-dbg
/usr/share/doc/qtbase5-dbg/copyright
/usr/share/doc/qtbase5-dbg/LGPL_EXCEPTION.txt
/usr/share/doc/qtbase5-dbg/changelog.Debian.gz因此,不存在包含调试符号的显式.so库,而是包含其他文件。
谁能给我一个样例g++行,为Qt5库启用调试符号(用于gdb调试)?
发布于 2016-12-12 04:14:11
gdb在/usr/lib/debug/.build-id文件夹中正确地找到了Qt5调试符号。在使用Qt的动态库之前,我只需要等待它们被加载:
$ gdb ./myapp
(gdb) start # (1)
(gdb) break any_Qt's_functionstart使用在main中设置的断点运行可执行文件。因此,当程序到达main时,gdb会中断,然后您可以在Qt的函数中设置新的断点,因为动态库和它们的调试文件最终都会加载。
https://stackoverflow.com/questions/41082465
复制相似问题