<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    <blockquote
      cite="mid:CEFB4A98-CB18-4BB0-8038-AAF04D91141B@apple.com"
      type="cite">
      <div><br>
      </div>
      <div>One immediate problem I see with this symbol is that it is a
        mangled name with angle brackets (<>) in it.  I don’t
        believe this is proper mangling.</div>
      <div><br>
      </div>
      <div>What I think is happening here is that the debug information
        is telling you that the type of something is
        char_traits<char> but treating that as a normal type
        instead of a templated type.  Then we’ll report a normal type
        with a name containing angle brackets to Clang, and it’ll
        produce bogus mangled names as you see.</div>
      <div><br>
      </div>
    </blockquote>
    This is what I see happening in the clang mangling code.  In the
    clang AST parsing when it attempts to do the mangled name
    substitution it is failing when checking to see if it is a
    basic_string<char,char_traits<char>,allocator<char>>. 
    It is failing when checking to see if char_traits<char> is a
    char specialization of char_traits.  In this check if fails the
    dyn_cast to ClassTemplateSpecializationDecl which indicates to me
    that is doesn't think it is a specialization of a template class. <br>
    <br>
    <blockquote
      cite="mid:CEFB4A98-CB18-4BB0-8038-AAF04D91141B@apple.com"
      type="cite">
      <div>One way you can see what types are being reported for things
        is by enabling the expression log:</div>
      <div><br>
      </div>
      <div>(lldb) log enable -f /tmp/lldb.expr.log.txt lldb expr</div>
      <div>(lldb) expr <i>your expression</i></div>
      <div><i><br>
        </i></div>
    </blockquote>
    I will take a look at the logs, and thanks for the pointers.<br>
    <br>
    - Alex<br>
    <br>
    <br>
  </body>
</html>