[Lldb-commits] [lldb] r319653 - Makefile.rules: compile all tests with -fno-limit-debug-info

Adrian Prantl via lldb-commits lldb-commits at lists.llvm.org
Wed Dec 6 09:44:08 PST 2017

> On Dec 6, 2017, at 9:35 AM, Robinson, Paul <paul.robinson at sony.com> wrote:
>> -----Original Message-----
>> From: Pavel Labath [mailto:labath at google.com]
>> Sent: Wednesday, December 06, 2017 4:09 AM
>> To: Jason Molenda
>> Cc: lldb-commits at lists.llvm.org; Robinson, Paul
>> Subject: Re: [Lldb-commits] [lldb] r319653 - Makefile.rules: compile all
>> tests with -fno-limit-debug-info
>> On 6 December 2017 at 01:54, Jason Molenda <jmolenda at apple.com> wrote:
>>> It looks like the macos testsuite on the bot is broken with this -
>>> http://lab.llvm.org:8080/green/view/LLDB/job/lldb/3086/
>>> On my desktop with a recent clang, it works fine.  But it seems like
>> every test? most tests? are failing with
>>> error: parsing line table prologue at 0x00000000 (parsing ended around
>> 0x00000000
>>> messages now.
>>> When I run one test by hand on my system, I have the -fno-limit-debug-
>> info flag:
>>> ./dotest.py -t -v -v
>> ../packages//Python/lldbsuite/test/functionalities/breakpoint/auto_continu
>> e/
>>> stdout:
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolc
>> hain/usr/bin/clang -g -O0 -fno-builtin -arch x86_64  -
>> I/Volumes/newwork/svn/lldb/packages/Python/lldbsuite/test/make/../../../..
>> /../include -include
>> /Volumes/newwork/svn/lldb/packages/Python/lldbsuite/test/make/test_common.
>> h -I/Volumes/newwork/svn/lldb/packages/Python/lldbsuite/test/make/  -fno-
>> limit-debug-info  -std=c99   -c -o main.o main.c
>>> I'm not sure if the bots are building against too new or too new a
>> compiler - if we're looking at a bug or it just does something weird when
>> given -fno-limit-debug-info?
>> I was able to reproduce this by running the tests against the
>> top-of-tree clang (which is what that bot does). It's not all tests
>> that break, just the ones using dSYM debug info.
>> While this patch is a reasonable first guess, it is actually *not* the
>> source of the breakage. The culprit is
>> <https://reviews.llvm.org/D38002>, which was present in the same
>> patchset. It seems this change makes clang emit different line table
>> headers. After that, dsymutil fails to process the files because it
>> detects a header mismatch (and lldb breaks because it cannot find the
>> line table or it is corrupt). I've cc'ed Paul in case he has any
>> insight.
>> Maybe dsymutil needs to be updated to handle the new line tables?
>> pl
> When I committed D38002, it broke debuginfo-tests on greendragon
> because it was using an older lldb and/or dsymutil that didn't know
> how to parse v3 or v4 line-table headers.  Adrian Prantl pinned
> the failing debuginfo-tests to v2 (change -g to -gdwarf-2) while that 
> gets sorted out.
> I expect the same thing is happening here.  The same workaround should
> apply here; the long-term fix is to update dsymutil.
> I really would rather not make the compiler pin line tables at v2 as
> a special case for Darwin, or whatever.

Yeah, our plan is to just fix dsymutil and to pin the LLDB tests to -gdwarf-2 as a temporary workaround until we can deploy a new dsymutil to the bots.

-- adrian

> --paulr

More information about the lldb-commits mailing list