<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Apr 20, 2014 at 7:26 PM, Greg Clayton <span dir="ltr"><<a href="mailto:gclayton@apple.com" target="_blank">gclayton@apple.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">You don't need to deref a pointer. You can just ask it how many children it has. <div>

<br></div><div>I am guessing you have a pointer that is using a forward declaration:</div><div><br></div></div></blockquote><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">​This probably it</div>

<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">​</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">

<div></div><div>class foo;</div><div>foo *foo = ...</div><div><br></div><div>Many compilers don't emit a full definition for the class in this case. Smart pointers often run into this. LLDB will try to track down a complete definition of your type elsewhere, but I am guessing there simply isn't one in the debug info.</div>

<div><br></div><div>Compilers often have some settings to control how much debug info does or does not get emitted, so you might check your compiler options. But these options tend to really bloat the debug info if you disable the settings which limit the debug info.</div>

<div><br></div><div>So to recap:</div><div>1 - don't do anything special for pointers, just ask them how many children they have and to get child at index</div><div>2 - many times there aren't full definitions for types when a forward declared pointer is used</div>

<div><br></div><div>Greg</div><div><br></div></div></blockquote><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">​So basically, pointers are being de-referenced automatically and I should do nothing special to handle this</div>

<div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">Thanks for the clarifications!</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">​</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div style="word-wrap:break-word"><div></div><div><div><br><div><div><div class="h5"><div>On Apr 19, 2014, at 6:09 AM, Eran Ifrah <<a href="mailto:eran.ifrah@gmail.com" target="_blank">eran.ifrah@gmail.com</a>> wrote:</div>

<br></div></div><blockquote type="cite"><div><div class="h5"><div dir="ltr"><div style="font-family:verdana,sans-serif;font-size:small">Hello list,</div><div style="font-family:verdana,sans-serif;font-size:small"><br></div>

<div style="font-family:verdana,sans-serif;font-size:small">

I am trying to de-reference a pointer type without success, i.e. I successfully that I need to perform a de-reference but the results are the same</div><div style="font-family:verdana,sans-serif;font-size:small">

<br></div><div style="font-family:verdana,sans-serif;font-size:small">here is the code logic I am using (value is of type SBValue):</div><div style="font-family:verdana,sans-serif;font-size:small">

<br></div><div style="font-family:verdana,sans-serif;font-size:small"><span style="font-family:'courier new',monospace">lldb::TypeClass typeClass = value.GetType().GetTypeClass();</span><br>
</div>
<div><font face="courier new, monospace">if ( typeClass & lldb::eTypeClassPointer ) {<br></font></div><div><font face="courier new, monospace">    value = value.Dereference();</font></div>

<div><font face="courier new, monospace">}</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">int numOfChildren = value.GetNumChildren();</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">// </font><span style="font-family:'courier new',monospace">numOfChildren is 0</span></div>

<div><span style="font-family:'courier new',monospace"><br></span></div><div><font face="verdana, sans-serif">Even when the above condition is True, the number of children remain 0</font></div>

<div><font face="verdana, sans-serif"><br></font></div><div><font face="verdana, sans-serif">Here is a screenshot of the debug process (I marked in RED what should have been de-referenced):</font></div>

<div><span style="font-family:verdana,sans-serif">​<a href="http://codelite.org/images/tmp/de-reference.png" target="_blank">http://codelite.org/images/tmp/de-reference.png</a>​</span><br></div><div><br></div>

<div><div style="font-family:verdana,sans-serif;font-size:small">What am I am missing?​</div><br></div><div><div style="font-family:verdana,sans-serif;font-size:small">​Thanks!​</div>

<br></div>-- <br><div dir="ltr">Eran Ifrah<br>Author of codelite, a cross platform open source C/C++ IDE: <a href="http://www.codelite.org/" target="_blank">http://www.codelite.org</a><br><div>wxCrafter, a wxWidgets RAD: http://<a href="http://wxcrafter.codelite.org/" target="_blank">wxcrafter.codelite.org</a></div>



</div>
</div></div></div>
_______________________________________________<br>lldb-dev mailing list<br><a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><br>

</blockquote></div><br></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Eran Ifrah<br>Author of codelite, a cross platform open source C/C++ IDE: <a href="http://www.codelite.org" target="_blank">http://www.codelite.org</a><br>

<div>wxCrafter, a wxWidgets RAD: http://<a href="http://wxcrafter.codelite.org" target="_blank">wxcrafter.codelite.org</a></div></div>
</div></div>