LLDB - Qt缺少调试信息

时间:2018-01-09 18:08:54

标签: c++ macos qt debugging lldb

我已经通过macOS安装程序安装了Qt 5.10.0。 我目前正在运行OSX El Capitan 10.11.6。

每当我尝试加载任何Qt库/框架时,都会收到以下警告:

warning: (x86_64) /Users/randomuser/Qt/5.10.0/clang_64/lib/QtWidgets.framework/QtWidgets empty dSYM file detected, dSYM was created with an executable with no debug info.

我只需运行lldb QtWidgets.framework

即可重现警告

我已尝试设置DYLD_IMAGE_SUFFIX = _debug,但这似乎不起作用。

此外,运行otool -L QtWidgets.framework/Versions/5/QtWidgets_debug报告链接到QtCore和QtGui的发布版本的库。

非常感谢任何见解,谢谢!

编辑:
为了详细说明我尝试使用DYLD_IMAGE_SUFFIX,我尝试了以下操作,但它仍然导致了上面的警告。

export DYLD_IMAGE_SUFFIX=_debug
lldb
>env DYLD_IMAGE_SUFFIX=_debug
>target create QtWidgets.framework
>warning: (x86_64) /Users/randomuser/Qt5.10.0/5.10.0/clang_64/lib/QtWidgets.framework/QtWidgets empty dSYM file detected, dSYM was created with an executable with no debug info.
>Current executable set to 'QtWidgets.framework' (x86_64).

1 个答案:

答案 0 :(得分:0)

我在Qt5.10.0上遇到了类似的问题

qmake CONFIG+=debug
make
lldb ./debug/qt_test.app/Contents/MacOS/qt_test
(lldb) env DYLD_IMAGE_SUFFIX=_debug
(lldb) image list
...
[ 16] 9A8C46A9-CADB-3DC2-9D5A-E04826477DCB 0x0000000000000000 /Users/macmini/Qt5.10.0/5.10.0/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets
 /Users/macmini/Qt5.10.0/5.10.0/clang_64/lib/QtWidgets.framework.dSYM/Contents/Resources/DWARF/QtWidgets
...

dSYM似乎已加载,但不适用于Qt库的_debug版本。但是当我在lldb中运行应用程序时:

(lldb) b main
(lldb) r
... lldb breaks on main()...
(lldb) image list
...
[  9] 1292D5A0-4ADF-37C3-A724-DDB9B199EE8A 0x0000000100296000 /Users/macmini/Qt5.10.0/5.10.0/clang_64/lib/QtWidgets.framework/Versions/5/QtWidgets_debug 
      /Users/macmini/Qt5.10.0/5.10.0/clang_64/lib/QtWidgets.framework.dSYM/Contents/Resources/DWARF/QtWidgets_debug
...

现在它使用带有正确符号的_debug Qt库。 快乐的调试!