<div dir="ltr">Greg,<div><br></div><div>I grabbed fat headers for /usr/lib/libc++.1.dylib:</div><div><br></div><div>







<p>$ otool -f /usr/lib/libc++.1.dylib</p>
<p>Fat headers</p>
<p>fat_magic 0xcafebabe</p>
<p>nfat_arch 2</p>
<p>architecture 0</p>
<p>    cputype 16777223</p>
<p>    cpusubtype 3</p>
<p>    capabilities 0x0</p>
<p>    offset 4096</p>
<p>    size 708080</p>
<p>    align 2^12 (4096)</p>
<p>architecture 1</p>
<p>    cputype 7</p>
<p>    cpusubtype 3</p>
<p>    capabilities 0x0</p>
<p>    offset 712704</p>
<p>    size 692592</p>
<p>    align 2^12 (4096)\</p><p>If, for example, we download a slice of libc++ for architecture 0 [4096, 4096  + 708080] from a target, will it sufficient for lldb on host side to load libc++correctly (resolve all symbols,..) using this slice? </p><p><br></p><p><br></p></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 20, 2015 at 3:22 PM, Greg Clayton <span dir="ltr"><<a href="mailto:clayborg@gmail.com" target="_blank">clayborg@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Feb 20, 2015, at 2:56 PM, Oleksiy Vyalov <<a href="mailto:ovyalov@google.com">ovyalov@google.com</a>> wrote:<br>
><br>
> Hi Vince,<br>
><br>
> In <a href="http://reviews.llvm.org/D7709#127748" target="_blank">http://reviews.llvm.org/D7709#127748</a>, @vharron wrote:<br>
><br>
>> Hi all,<br>
>><br>
>> In this instance, we are using this uuid to determine if the module is already cached on the host, right?<br>
><br>
><br>
> yes, the plan to have local cache on host side with UUID used a key.<br>
><br>
>> If a fat binary has multiple architectures in a single file and each arch has it's own uuid, wouldn't we just combine (add/xor/whatever) the uuids to get a single uuid for the entire file?<br>
><br>
><br>
> My understanding that in case of a fat binary with multiple architectures there is still a single UUID that represents a whole module's binary file, i.e. UUID shouldn't be tied to an architecture.<br>
<br>
</span>That is not correct for MacOSX. Each slice has its own UUID value. The qModuleInfo might be able to return the file offset and file set as well so we can download and cache only the slice we need?<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> <a href="http://reviews.llvm.org/D7709" target="_blank">http://reviews.llvm.org/D7709</a><br>
><br>
> EMAIL PREFERENCES<br>
>  <a href="http://reviews.llvm.org/settings/panel/emailpreferences/" target="_blank">http://reviews.llvm.org/settings/panel/emailpreferences/</a><br>
><br>
><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><span style="color:rgb(85,85,85);font-family:sans-serif;line-height:20px;background-color:rgb(255,255,255);border-width:2px 0px 0px;border-style:solid;border-color:rgb(213,15,37);padding-top:2px;margin-top:2px">Oleksiy Vyalov |</span><span style="color:rgb(85,85,85);font-family:sans-serif;line-height:20px;background-color:rgb(255,255,255);border-width:2px 0px 0px;border-style:solid;border-color:rgb(51,105,232);padding-top:2px;margin-top:2px"> Software Engineer |</span><span style="color:rgb(85,85,85);font-family:sans-serif;line-height:20px;background-color:rgb(255,255,255);border-width:2px 0px 0px;border-style:solid;border-color:rgb(0,153,57);padding-top:2px;margin-top:2px"> <a href="mailto:ovyalov@google.com" target="_blank">ovyalov<font color="#1155cc">@google.com</font></a></span></div></div>
</div>