title: Find function pointer SBType in LLDB when DWARF info contains only typedef
body: <p>Is it possible to find a function pointer SBType using something like <code>lldb.target.FindTypes()</code> without iterating over all types in all modules, given that the DWARF information seems to contain only the typedef to the type?</p>
  
  <p>So in my C++ code I have:</p>
  
  <pre><code>typedef struct _object {
    PyObject_HEAD
  } PyObject;
  typedef void (*PythonToCppFunc)(PyObject*,void*);
  </code></pre>
  
  <p>When I execute </p>
  
  <pre><code>script print lldb.target.FindFirstType("PythonToCppFunc").GetName()
  script print lldb.target.FindFirstType("PythonToCppFunc").GetCanonicalType()
  script print lldb.target.FindFirstType("PythonToCppFunc").GetCanonicalType().GetName()
  </code></pre>
  
  <p>I get</p>
  
  <pre><code>PythonToCppFunc
  void (*)(struct _object *, void *)
  void (*)(_object *, void *)
  </code></pre>
  
  <p>But when I try to look for the canonical type or its name</p>
  
  <pre><code>script print lldb.target.FindTypes("void (*)(struct _object *, void *)").GetSize()
  </code></pre>
  
  <p>I get 0 results. I also tried variations of the above with different whitespace, without <code>struct</code> keyword, etc. without any results.</p>
  
  <p>The best I could find is to iterate over all module types and compare the names, so something like this actually works, but is very slow:</p>
  
  <pre><code>target.GetModuleAtIndex(i).GetTypes().GetTypeAtIndex(j).GetName() == "void (*)(_object *, void *)" 
  </code></pre>
  
  <p>Am I doing something wrong, or is it a bug, or is it not supported?</p>