[Interest] Qt 5 Creator 3.3 (Mac) Debugger locks up with endless error logging of "DW_AT_specification(address) has no decl"

André Pönitz apoenitz at t-online.de
Tue Feb 3 19:37:21 CET 2015


On Mon, Feb 02, 2015 at 03:11:48PM -0800, Jim Prouty wrote:
> I'm hoping someone can tell me how we can fix our Qt development environment
> to avoid this frustration:
> 
> Way too often Qt Creator 3.3 completely locks up when it hits certain
> breakpoints in our app using our self-compiled Qt 5.4.1 on Mac OS X 10.9.5.
> 
> (It is not clear what causes some breakpoints to lock up when most other
> breakpoint pose no problem.)

It depends on which debug information the debugger reads to interpret the
contents of the local variables and function parameters in that location.
It's not necessarily only related to the type of the variables, but also
how the type's debug information is arranged.
 
> This is a problem we've had with earlier combinations of Qt, Qt Creator and
> Mac OS X.
> 
> When the Qt Creator Debugger UI locks up, stepping or resuming execution are
> not possible, and the Debugger Log very slowly writes hundreds of errors and
> warnings about "DW_AT_specification(address) has no decl".
> 
> Once this begins, there is no way to recover a working debugging session
> short of a computer reboot or laborious process-ID genocide.

> ------- Debugger Log Example Extract --------- ...  warning: (x86_64)
> /Source/IgorDev7/Igorsrc7/build-IgorPhoenix-64_bit_Qt_5_from_SVN-Debug/debug/IgorWindowUtilities.o
> 0x2a0009ac67: DW_AT_specification(0x000767fb) has no decl
> 
> ERROR: Lldb stderr: warning: (x86_64)
> /Source/IgorDev7/Igorsrc7/build-IgorPhoenix-64_bit_Qt_5_from_SVN-Debug/debug/wDataClassForEmbeddedQWidget.o
> 0x2b0009c964: DW_AT_specification(0x0007c91e) has no decl
> [...]

That situation is triggered by a miscommunication of compiler (Clang) and
debugger backend (LLDB in this case). The compiler writes debug information
which the debugger does not understand. Whether the written debug information
is faulty or whether the debugger mis-reads it, I haven't checked.

In any case, that's not really caused by Qt, and there's also not much Qt
Creator can do about. I've seen it happening myself, and when it happens,
LLDB is completely unresponsive, so there's not even a way to say "if you
don't finish within 10 seconds I'd prefer to not see certain data".
The only option besides waiting would be to kill the LLDB process (similar
to the 40s watchdog timer we have on the GDB side). 

Andre'





More information about the Interest mailing list