2016-12-11 71 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的函數中設置新的斷點,因爲動態庫及其調試文件最終會加載。