<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 25, 2016, at 3:20 PM, Vadim Chugunov <<a href="mailto:vadimcn@gmail.com" class="">vadimcn@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote">On Mon, Jan 25, 2016 at 11:04 AM, Enrico Granata <span dir="ltr" class=""><<a href="mailto:egranata@apple.com" target="_blank" class="">egranata@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word" class=""><br class=""><div class=""><span class=""><blockquote type="cite" class=""><div class="">On Jan 25, 2016, at 12:23 AM, Vadim Chugunov via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" target="_blank" class="">lldb-dev@lists.llvm.org</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class="">Hi,<div class="">If I have an SBValue for an object whose type has a formatter enabled for it, is there a way to detect this via the Python API, and if so, request an "unmodified" view of the object?<div class=""></div></div></div></div></blockquote><div class=""><br class=""></div></span><div class="">There definitely is a way for synthetic children, as you discovered below</div><div class="">For type formats, you can simply set the format on the SBValue on an individual basis (SBValue::SetFormat)</div><div class="">As for summaries, no, there is no way, as that would be nonsensical (don’t like the summary? just don’t ask for it - but there’s no meaning to getting the summary of a value once you disabled its summary)</div></div></div></blockquote><div class=""><br class="">Yes, this is about synthetic children.  Summaries are not a problem.<br class=""></div><div class=""> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><span class=""><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><div class=""><div class="">I've experimented with value.IsSynthetic() and value.GetNonSyntheticValue(), but the former seems to always return false, and the latter gives me the same list of children as the original value.<br class=""></div></div></div></div></div></blockquote><div class=""><br class=""></div></span><div class="">Do you have a reproduction case I can look at?</div></div></div></blockquote><div class=""><br class=""></div><div class="">My setup is kinda complicated, I want to make sure I am using the API correctly before attempting to create a self-contained repro case.<br class=""></div><div class=""> </div></div></div></div></div></blockquote><div><br class=""></div><div>That’s fair. Can you at least try to describe what you’re trying to do and the data types involved in this?</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><div class="">GetNonSyntheticValue() returning self is correct behavior if IsSynthetic() == False; but if there really is a synthetic provider attached to the object, IsSynthetic() should definitely return True</div><br class=""></div></div></blockquote></div><br class=""></div><div class="gmail_extra">Whose IsSynthetic() is supposed to return True,- the parent's or the child's?  <br class=""></div></div></div></blockquote><div><br class=""></div><div>What do you mean with this?</div><div>The model is that you have an SBValue, and that SBValue could be backed by a synthetic value. If you want, you can LLDB not to prefer synthetic values - which changes the way the current SBValue works - or for the same backing variable, give you a non-synthetic SBValue, which is what GetNonSyntheticValue() does</div><div><br class=""></div><div>Parent/child should have nothing to do with this, unless I am misunderstanding you</div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class="gmail_extra">And on which object should I be calling GetNonSyntheticValue()?  (I assume on the parent?)<br class=""></div><div class="gmail_extra"><br class=""></div><div class="gmail_extra">Vadim<br class=""></div></div>
</div></blockquote></div><br class=""><div class="">
<div class="" style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br class="Apple-interchange-newline">Thanks,</div><div class="" style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><i class="">- Enrico</i><br class="">📩 egranata@<font color="#ff2600" class=""></font>.com ☎️ 27683</div>
</div>
<br class=""></body></html>