2016-12-11 103 views
0

如何链接Qt5应用程序和Qt5调试符号?我不使用qmake或CMake,而是使用定制的Makefile。Makefile和qt5:使用调试符号链接qt5

我已经安装了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调试)?

回答

0

通过/usr/lib/debug/.build-id文件夹中的gdb正确找到Qt5调试符号。我只需要等待的Qt的动态库使用前加载:

$ gdb ./myapp 
(gdb) start # (1) 
(gdb) break any_Qt's_function 

start运行在main设置断点的可执行文件。因此,当程序达到main,gdb中断时,您可以在Qt的函数中设置新的断点,因为动态库及其调试文件最终会加载。