<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - 'image list' command is not listing modules in lldb-gdbserver on Ubuntu 12.04 x86_64"
   href="http://llvm.org/bugs/show_bug.cgi?id=18797">18797</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>'image list' command is not listing modules in lldb-gdbserver on Ubuntu 12.04 x86_64
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>lldb
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>All Bugs
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>lldb-dev@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>tfiala@google.com
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Repro steps:
1. build lldb and lldb-gdbserver on Ubuntu 12.04 x86_64 using either autoconf
or cmake/ninja.
2. change to the build dir, and run './lldb ./lldb-gdbserver'
3. At the (lldb) prompt, run 'image list'

Expected result:
See roughly 14 modules listed, including liblldb.so.

Actual result:
(lldb) image list
[  0] 8248772F-0000-0000-0000-000000000000                    ./lldb-gdbserver 

I found this when tracking down the gold linker issue I reported when
post-mortem debugging an assert in lldb-gdbserver.

What I've found so far is that when Target::SetExecutableModule (...) loops
over its dependent modules, there is no directory resolved for the module
names, and thus the file operations fail, causing the module loading to short
circuit and delete the module.

I've tried this with the following configurations:
A. cmake/ninja with gold linker (sudo apt-get install binutils-gold)
B. cmake/ninja without gold linker (sudo apt-get remove binutils-gold)
C. autoconf (configure/(g)make) without gold linker.

In all 3 cases, the module was destroyed because the file name for the
dependent module couldn't be found due to a missing directory element.

In case A. above, I verified that setting the target directly to the liblldb.so
file did work and was able to read/handle the elf file.  In that case, though,
the directory was provided to it so the file resolution methods worked as
expected.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>