[lldb-dev] "--fullname" fails to resolve, but "--name" works.

Michael Witten via lldb-dev lldb-dev at lists.llvm.org
Sun Feb 11 17:24:47 PST 2018


Firstly, here are the characters in our story:

  * lldb

      $ lldb --version
      lldb version 5.0.1

  * clang

      $ p=/path/to/clang
      $ file -L "$p"
      /path/to/clang: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=3a2da750e90367b294e4219896738fa9b0a285ad, with debug_info, not stripped
      $ "$p" --version
      clang version 7.0.0 (trunk 324807)
      Target: x86_64-unknown-linux-gnu
      Thread model: posix
      InstalledDir: /path/to

Launch "lldb" with the above "clang":

  $ lldb "$p"
  (lldb) target create "/path/to/clang"
  Current executable set to '/path/to/clang' (x86_64).
  (lldb) 

Now, type the following, where "<TAB>" means that the tab key is pressed
in order to initiate argument completion:

  (lldb) breakpoint set --fullname clang::APValue::isMemberPointerT<TAB>

After pegging some CPU cores for an appreciable amount of time, and after
loading GiBs of data into RAM, lldb provides the following completion:

  (lldb) breakpoint set --fullname clang::APValue::isMemberPointerToDerivedMember()\ const 

Issue the above lldb command (that is, press "<ENTER>") in order to set
a breakpoint that apparently cannot be resolved:

  (lldb) breakpoint set --fullname clang::APValue::isMemberPointerToDerivedMember()\ const <ENTER>
  Breakpoint 1: no locations (pending).
  WARNING:  Unable to resolve breakpoint to any actual locations.

Now, try a plain "--name", which works:

  (lldb) breakpoint set --name isMemberPointerToDerivedMember<ENTER>
  Breakpoint 2: where = clang`clang::APValue::isMemberPointerToDerivedMember() const + 12 at APValue.cpp:623, address = 0x0000000005f6931e

Hmmm...
...
...Hmmm...
...
...... WHAT?!

Sincerely,
Michael Witten


More information about the lldb-dev mailing list