2016-12-11 5 views
0

Qt5アプリケーションとQt5デバッグシンボルをリンクするにはどうすればよいですか?私はqmakeやCMakeではなくカスタムメイドのMakefileを使っています。Makefileとqt5:デバッグシンボルでqt5をリンク

$ 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ライブラリはありませんが、他のファイル:私は(Ubuntuの/ apt-getの)qtbase5-dbgパッケージをインストールし、それによってインストールされたファイルを見ている

gdbのデバッグのために、Qt5ライブラリのデバッグシンボルを使用しているサンプルをg++にしてください。

答えて

0

/usr/lib/debug/.build-idフォルダ内のgdbによってQt5デバッグシンボルが正しく検出されました。

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

startmainに設定されたブレークポイントで実行ファイルを実行します:私はQtの動的ライブラリは、それらを使用する前にロードされている待機する必要がありました。したがって、プログラムがmainに達すると、gdbが壊れ、最後に動的ライブラリとそのデバッグファイルがロードされるため、Qtの関数に新しいブレークポイントを設定することができます。

関連する問題