<html>
<head>
<base href="http://llvm.org/bugs/" />
</head>
<body><span class="vcard"><a class="email" href="mailto:zturner@google.com" title="Zachary Turner <zturner@google.com>"> <span class="fn">Zachary Turner</span></a>
</span> changed
<a class="bz_bug_link
bz_status_NEW "
title="NEW --- - LLD does not generate a symbol table on Windows"
href="http://llvm.org/bugs/show_bug.cgi?id=22177">bug 22177</a>
<br>
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>What</th>
<th>Removed</th>
<th>Added</th>
</tr>
<tr>
<td style="text-align:right;">CC</td>
<td>
</td>
<td>david.majnemer@gmail.com, llvmbugs@cs.uiuc.edu
</td>
</tr>
<tr>
<td style="text-align:right;">Component</td>
<td>All Bugs
</td>
<td>All Bugs
</td>
</tr>
<tr>
<td style="text-align:right;">Assignee</td>
<td>lldb-dev@cs.uiuc.edu
</td>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<td style="text-align:right;">Product</td>
<td>lldb
</td>
<td>lld
</td>
</tr>
<tr>
<td style="text-align:right;">Summary</td>
<td>LLDB expression evaluator does not demangle C++ names on Windows
</td>
<td>LLD does not generate a symbol table on Windows
</td>
</tr></table>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - LLD does not generate a symbol table on Windows"
href="http://llvm.org/bugs/show_bug.cgi?id=22177#c2">Comment # 2</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW --- - LLD does not generate a symbol table on Windows"
href="http://llvm.org/bugs/show_bug.cgi?id=22177">bug 22177</a>
from <span class="vcard"><a class="email" href="mailto:zturner@google.com" title="Zachary Turner <zturner@google.com>"> <span class="fn">Zachary Turner</span></a>
</span></b>
<pre>So the problem is not that it can't demangle names. In fact, it can demangle
names just fine. You can see it demangling main. And if you change the
signature of main in expr_test.cpp to int main(int, char**) then you will get
this from LLDB (note that I'm using a PE file here, generated with
-fuse-ld=lld):
d:\testexe>d:\src\llvm\build\ninja\bin\lldb
(lldb) file expr_test.exe
Current executable set to 'expr_test.exe' (i386).
(lldb) p main
(int (*)(int, char **)) $0 = 0x00415020
But it still can't handle foo even LLD's debug info. The problem seems to be
that LLD isn't building the symbol table correctly.
d:\testexe>d:\src\llvm\build\ninja\bin\llvm-readobj.exe --symbols expr_test.exe
File: expr_test.exe
Format: COFF-i386
Arch: i386
AddressSize: 32bit
Symbols [
]
I don't know what I'm supposed to see here, but I would expect to see "main"
and "foo" in that list in some form or another.
I guess it just happens to be finding main because it's the entry point, so we
got lucky. This sounds like an issue for someone who works on LLD.</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>