#31611 closed defect (fixed)
qt4-mac @4.7.4_0+debug+quartz fails to leave debug symbols in the resulting shared libraries
Reported by: | kierans (Kieran Simpson) | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.0.3 |
Keywords: | Cc: | michaelld (Michael Dickens), obin.mf@…, mkae (Marko Käning) | |
Port: | qt4-mac |
Description
OSX 10.6.7
XCode 4.0 Build 4A304a
The compiler used was /Developer/usr/bin/llvm-g++-4.2
I noticed when debugging a segfault, even though my binary was linked to the Qt_debug libraries no line numbers or other symbols were available. My investigation found that no -g flags were passed to the Makefile.Debug LFLAGS, thus when the shared library was built the symbols disappeared.
I added the flags (-g -gdwarf-2 like what was in CXXFLAGS) and rebuilt Qt and retried my gdb session. I got symbols, line numbers, code listings, etc.
This problem was first posted to the mailing list (http://lists.macosforge.org/pipermail/macports-users/2011-October/025840.html)
Attachments (1)
Change History (10)
comment:1 Changed 13 years ago by michaelld (Michael Dickens)
comment:2 Changed 13 years ago by mf2k (Frank Schima)
Keywords: | qt4 debug removed |
---|---|
Port: | +debug removed |
Changed 13 years ago by kierans (Kieran Simpson)
Attachment: | qt4-mac-build-log.txt.bz2 added |
---|
debug log of qt4-mac +debug build
comment:4 Changed 13 years ago by michaelld (Michael Dickens)
It looks from the log file like the debug libraries are being formed correctly -- with "-g -gdwarf-2". Can you double-check this ticket's issue? I did just update qt4-mac so-as to use llvm-g++ instead of clang++ -- so maybe that makes a difference? clang has some known issues already, which is why some ports cannot use it.
comment:5 follow-up: 8 Changed 13 years ago by kierans (Kieran Simpson)
Upgrading to qt4-mac @4.7.4_1+debug+quartz fixed the issue.
One does have to remember to use the -k option when building the debug libraries however so that the source doesn't disappear at the end of the build.
comment:6 Changed 13 years ago by michaelld (Michael Dickens)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Yes, you do need to -k(eep) the source when using dwarf2 symbols; see < http://doc.qt.nokia.com/stable/debug.html#debug-symbols-and-size >. IIRC, we can enable debug but disable dwarf2 so that you don't need the source any longer, but that solution takes a -lot- longer to produce, results in -much- larger libraries, and also has issues (being created at all) under 10.4 and 10.5. So, your solution is the preferred way until something better comes along.
comment:8 Changed 13 years ago by macporter90210@…
Replying to kierans777@…:
Upgrading to qt4-mac @4.7.4_1+debug+quartz fixed the issue.
One does have to remember to use the -k option when building the debug libraries however so that the source doesn't disappear at the end of the build.
I am trying to build an unrelated port for debug symbols and have similar issues. Where do you specify the -k option?
comment:9 Changed 13 years ago by michaelld (Michael Dickens)
As in "sudo port -k install qt4-mac". Do "man port" for more info.
Can you provide a debug log for the build:
and then attach the compressed logfile to this ticket.