[lldb-dev] [Bug 40141] New: LLDB does not support armvXl, armvXb, armvXlhf, armvXbhf, arm64l, aarch64l and aarch64b

via lldb-dev lldb-dev at lists.llvm.org
Sat Dec 22 17:22:05 PST 2018


https://bugs.llvm.org/show_bug.cgi?id=40141

            Bug ID: 40141
           Summary: LLDB does not support armvXl, armvXb, armvXlhf,
                    armvXbhf, arm64l, aarch64l and aarch64b
           Product: lldb
           Version: 5.0
          Hardware: Other
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: All Bugs
          Assignee: lldb-dev at lists.llvm.org
          Reporter: kenji.koyanagi at gmail.com
                CC: llvm-bugs at lists.llvm.org

Created attachment 21269
  --> https://bugs.llvm.org/attachment.cgi?id=21269&action=edit
Patch for 5.0.2

I tried to debug an application on armv7l-linux but it did not work. I applied
the below patch, but the result was the same.
https://github.com/hpux735/swift-lldb/commit/e3e023f54c69512a77a87dfc328b3a8e75a9e185

The behavior of current LLDB + above patch:
  I set a breakpoint at line 6, but not worked after line 16.
  LLDB changed arch arm-*-linux-eabihf to armv7l-unknown-unknown at line 8-12.
  I was not able to set breakpoint at line 13.

 1      (lldb) file ~/a.out
 2      Current executable set to '~/a.out' (arm).
 3      (lldb) target list
 4      Current targets:
 5      * target #0: /home/common/a.out ( arch=arm-*-linux-eabihf,
platform=host )
 6      (lldb) b main
 7      Breakpoint 1: where = a.out`main, address = 0x000103f4
 8      (lldb) process launch --stop-at-entry
 9      Process 5659 launched: '/home/common/a.out' (arm)
10      (lldb) target list
11      Current targets:
12      * target #0: <none> ( arch=armv7l-unknown-unknown, platform=host,
pid=5659, state=stopped )
13      (lldb) b main
14      Breakpoint 2: no locations (pending).
15      WARNING:  Unable to resolve breakpoint to any actual locations.
16      (lldb) c
17      Process 5659 resuming
18      hello
19      Process 5659 exited with status = 0 (0x00000000) 
20      (lldb) 

I am using Digilent Zybo, but same problem will probably occur in RaspberryPi.

I think there is a bug in ArchSpec::MergeFrom.
LLDB loses vendor and OS name by calling ArchSpec::CoreUpdated(true) to set
SubArch.
I think this problem is caused by the fact that SubArch can only be set by the
constructor of llvm::Triple.
LLDB worked fine by saving those information.

I judged that the FindCoreDefinition should be modified to support cores other
than armv7 and little-endian, so the above patch is not good.
I have created a patch. Are there any arm users who can try this?
I used 5.0.2 and 6.0.1 because libcxxabi of 7.0.0 failed in build on arm.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20181223/73d29ff0/attachment.html>


More information about the lldb-dev mailing list