<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </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 - lld doesn't normalize pdb paths leading to paths such as debug_component\./base.dll.pdb"
   href="https://bugs.llvm.org/show_bug.cgi?id=38126">38126</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>lld doesn't normalize pdb paths leading to paths such as debug_component\./base.dll.pdb
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>lld
          </td>
        </tr>

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

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

        <tr>
          <th>OS</th>
          <td>Windows NT
          </td>
        </tr>

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

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>COFF
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>brucedawson@chromium.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Chrome's build system passes a mixture of forward and back slashes as path
separators. link.exe normalizes all of these and creates a minimal/canonical
path to the PDB inside of the PDB file. This can be seen with:

<span class="quote">> dumpbin /headers base.dll | find /i "rsds"</span >

Typical output is like this:

    5B36C745 cv            50 00461348   460348    Format: RSDS,
{841F5EF3-1C48-4817-A3D5-C7F30CD90E9D}, 7,
c:\src\chromium3\src\out\debug_component\./base.dll.pdb

In particular note the "debug_component\./base.dll.pdb" portion. With link.exe
this is "debug_component\base.dll.pdb"

This is important because with recent versions of WPA (maybe only with the most
recent version?) this prevents symbol loading from working, completely.

This makes ETW profiling of Chrome somewhere between impossible and extremely
difficult so this is important to fix promptly.

Given an ETW trace you can see the paths which it is using for symbol lookup
with this command:

"xperf -i "testtrace_with_patched_base.etl" -tle -tti -a symcache -quiet
-imageid -dbgid"

However the dumpbin technique is much simpler.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>