<div dir="ltr"><div class="markdown-here-wrapper" style><p style="margin:1.2em 0px!important">Hey Stephane,</p>
<p style="margin:1.2em 0px!important">On patch 2 - could you add some comments around these bits? It’s a little unclear what’s happening there and I want to make sure we don’t break it at some point later.</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="hljs language-diff" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;display:inline;background-color:rgb(248,248,248);white-space:pre;overflow:auto;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248)"><span class="hljs-addition" style="background:rgb(221,255,221)">+ symbol_value_offset = -1;</span>

<span class="hljs-deletion" style="background:rgb(255,221,221)">- uint64_t symbol_value = symbol.st_value; </span>
<span class="hljs-addition" style="background:rgb(221,255,221)">+ uint64_t symbol_value = symbol.st_value | symbol_value_offset;</span>
</code></pre>
<p style="margin:1.2em 0px!important">Other than that, it looks fine.  I'll wait on that for the patch submission of part 2.</p>
<p style="margin:1.2em 0px!important">Also - not needed for the patch itself, but would be great as a follow up would be adding a unit test to verify we’re correctly marking the thumb code symbols. That’d be great if you could add a unit test for it.</p>
<p style="margin:1.2em 0px!important">Thanks!<br>-Todd</p>
<p style="margin:1.2em 0px!important">On Mon, Sep 15, 2014 at 9:38 AM, Todd Fiala <<a href="mailto:tfiala@google.com" target="_blank">tfiala@google.com</a>> wrote:</p>
<p style="margin:1.2em 0px!important"></p><div class="markdown-here-exclude"><p></p><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Part 1 committed here:<div>```</div><div><div>svn commit</div><div>Sending        source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp</div><div>Transmitting file data .</div><div>Committed revision 217782.</div></div><div>```</div><div><br></div><div>Stephane - it would be great if you could add a unit test to verify those symbols are getting stripped.  Let me know if you need help figuring out how the unit tests work.</div><div><br></div><div>Looking at Part 2 now.</div><div><br></div><div>-Todd</div></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">On Wed, Sep 10, 2014 at 12:55 PM, Stephane Sezer <span dir="ltr"><<a href="mailto:sas@fb.com" target="_blank">sas@fb.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div>
<div><font><span style="font-size:10pt">
<div>Re-sending these, as the first email didn’t reach the mailing list for some reason.<br>
<br>
</div>
</span></font></div>
<div><font><span style="font-size:10pt">
<div><br>
<br>
On Sep 9, 2014, at 5:27 PM, Stephane Sezer <<a href="mailto:sas@fb.com" target="_blank">sas@fb.com</a>> wrote:<br>
<br>
> Two patches here:<br>
> <br>
> [PATCH 1/2] Skip $t* and $a* symbols in ObjectFileELF.<br>
> <br>
> ELF objects contain marker symbols to differentiate between ARM and<br>
> THUMB functions. Instead of storing them internally and having garbage<br>
> show up when symbols are searched for by the user, we can just skip them<br>
> and not store them at all, as we never actually need them.<br>
> <br>
> [PATCH 2/2] Store the thumbness of a function in symbol flags.<br>
> <br>
> This allows us to fixup the address of the symbol as soon as we parse it<br>
> so that lldb is not confused thinking there are two different symbols in<br>
> the binary (one with the thumb bit, one without). Also, differentiating<br>
> between THUMB and ARM symbols allows the debugger to place the right<br>
> type of breakpoint.<br>
> <br>
> <br>
> <0001-Skip-t-and-a-symbols-in-ObjectFileELF.patch><0002-Store-the-thumbness-of-a-function-in-symbol-flags.patch><br>
<br>
</div>
</span></font></div>
</div>

</blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small"><td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34);background-repeat:initial initial">tfiala@google.com</span></a> |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"><font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</font></span></div>
</blockquote><p></p></div><p style="margin:1.2em 0px!important"></p>
<div title="MDH:SGV5IFN0ZXBoYW5lLDxicj48YnI+T24gcGF0Y2ggMiAtIGNvdWxkIHlvdSBhZGQgc29tZSBjb21t
ZW50cyBhcm91bmQgdGhlc2UgYml0cz8gSXTigJlzIGEgbGl0dGxlIHVuY2xlYXIgd2hhdOKAmXMg
aGFwcGVuaW5nIHRoZXJlIGFuZCBJIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGRvbuKAmXQgYnJlYWsg
aXQgYXQgc29tZSBwb2ludCBsYXRlci48YnI+PGJyPmBgYGRpZmY8YnI+KyBzeW1ib2xfdmFsdWVf
b2Zmc2V0ID0gLTE7PGRpdj48YnI+LSB1aW50NjRfdCBzeW1ib2xfdmFsdWUgPSBzeW1ib2wuc3Rf
dmFsdWU7Jm5ic3A7PC9kaXY+PGRpdj4rIHVpbnQ2NF90IHN5bWJvbF92YWx1ZSA9IHN5bWJvbC5z
dF92YWx1ZSB8IHN5bWJvbF92YWx1ZV9vZmZzZXQ7PC9kaXY+PGRpdj5gYGA8YnI+PGJyPk90aGVy
IHRoYW4gdGhhdCwgaXQgbG9va3MgZmluZS48YnI+PGJyPkFsc28gLSBub3QgbmVlZGVkIGZvciB0
aGUgcGF0Y2ggaXRzZWxmLCBidXQgd291bGQgYmUgZ3JlYXQgYXMgYSBmb2xsb3cgdXAgd291bGQg
YmUgYWRkaW5nIGEgdW5pdCB0ZXN0IHRvIHZlcmlmeSB3ZeKAmXJlIGNvcnJlY3RseSBtYXJraW5n
IHRoZSB0aHVtYiBjb2RlIHN5bWJvbHMuIFRoYXTigJlkIGJlIGdyZWF0IGlmIHlvdSBjb3VsZCBh
ZGQgYSB1bml0IHRlc3QgZm9yIGl0Ljxicj48YnI+PC9kaXY+PGRpdj5UaGFua3MhPGJyPi1Ub2Rk
PC9kaXY+PGRpdj48YnI+PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxkaXYgY2xhc3M9ImdtYWls
X3F1b3RlIj5PbiBNb24sIFNlcCAxNSwgMjAxNCBhdCA5OjM4IEFNLCBUb2RkIEZpYWxhIDxzcGFu
IGRpcj0ibHRyIj4mbHQ7PGEgaHJlZj0ibWFpbHRvOnRmaWFsYUBnb29nbGUuY29tIiB0YXJnZXQ9
Il9ibGFuayI+dGZpYWxhQGdvb2dsZS5jb208L2E+Jmd0Ozwvc3Bhbj4gd3JvdGU6PGJyPjxibG9j
a3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRl
ci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPjxkaXYgZGlyPSJsdHIiPlBh
cnQgMSBjb21taXR0ZWQgaGVyZTo8ZGl2PmBgYDwvZGl2PjxkaXY+PGRpdj5zdm4gY29tbWl0PC9k
aXY+PGRpdj5TZW5kaW5nICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO3NvdXJjZS9QbHVnaW5z
L09iamVjdEZpbGUvPHdicj5FTEYvT2JqZWN0RmlsZUVMRi5jcHA8L2Rpdj48ZGl2PlRyYW5zbWl0
dGluZyBmaWxlIGRhdGEgLjwvZGl2PjxkaXY+Q29tbWl0dGVkIHJldmlzaW9uIDIxNzc4Mi48L2Rp
dj48L2Rpdj48ZGl2PmBgYDwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+U3RlcGhhbmUgLSBpdCB3
b3VsZCBiZSBncmVhdCBpZiB5b3UgY291bGQgYWRkIGEgdW5pdCB0ZXN0IHRvIHZlcmlmeSB0aG9z
ZSBzeW1ib2xzIGFyZSBnZXR0aW5nIHN0cmlwcGVkLiAmbmJzcDtMZXQgbWUga25vdyBpZiB5b3Ug
bmVlZCBoZWxwIGZpZ3VyaW5nIG91dCBob3cgdGhlIHVuaXQgdGVzdHMgd29yay48L2Rpdj48ZGl2
Pjxicj48L2Rpdj48ZGl2Pkxvb2tpbmcgYXQgUGFydCAyIG5vdy48L2Rpdj48ZGl2Pjxicj48L2Rp
dj48ZGl2Pi1Ub2RkPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxkaXY+PGRp
diBjbGFzcz0iaDUiPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+T24gV2VkLCBTZXAgMTAs
IDIwMTQgYXQgMTI6NTUgUE0sIFN0ZXBoYW5lIFNlemVyIDxzcGFuIGRpcj0ibHRyIj4mbHQ7PGEg
aHJlZj0ibWFpbHRvOnNhc0BmYi5jb20iIHRhcmdldD0iX2JsYW5rIj5zYXNAZmIuY29tPC9hPiZn
dDs8L3NwYW4+IHdyb3RlOjxicj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxl
PSJtYXJnaW46MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxl
ZnQ6MWV4Ij4KCgoKPGRpdj4KPGRpdj48Zm9udD48c3BhbiBzdHlsZT0iZm9udC1zaXplOjEwcHQi
Pgo8ZGl2PlJlLXNlbmRpbmcgdGhlc2UsIGFzIHRoZSBmaXJzdCBlbWFpbCBkaWRu4oCZdCByZWFj
aCB0aGUgbWFpbGluZyBsaXN0IGZvciBzb21lIHJlYXNvbi48YnI+Cjxicj4KPC9kaXY+Cjwvc3Bh
bj48L2ZvbnQ+PC9kaXY+CjxkaXY+PGZvbnQ+PHNwYW4gc3R5bGU9ImZvbnQtc2l6ZToxMHB0Ij4K
PGRpdj48YnI+Cjxicj4KT24gU2VwIDksIDIwMTQsIGF0IDU6MjcgUE0sIFN0ZXBoYW5lIFNlemVy
ICZsdDs8YSBocmVmPSJtYWlsdG86c2FzQGZiLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnNhc0BmYi5j
b208L2E+Jmd0OyB3cm90ZTo8YnI+Cjxicj4KJmd0OyBUd28gcGF0Y2hlcyBoZXJlOjxicj4KJmd0
OyA8YnI+CiZndDsgW1BBVENIIDEvMl0gU2tpcCAkdCogYW5kICRhKiBzeW1ib2xzIGluIE9iamVj
dEZpbGVFTEYuPGJyPgomZ3Q7IDxicj4KJmd0OyBFTEYgb2JqZWN0cyBjb250YWluIG1hcmtlciBz
eW1ib2xzIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBBUk0gYW5kPGJyPgomZ3Q7IFRIVU1CIGZ1
bmN0aW9ucy4gSW5zdGVhZCBvZiBzdG9yaW5nIHRoZW0gaW50ZXJuYWxseSBhbmQgaGF2aW5nIGdh
cmJhZ2U8YnI+CiZndDsgc2hvdyB1cCB3aGVuIHN5bWJvbHMgYXJlIHNlYXJjaGVkIGZvciBieSB0
aGUgdXNlciwgd2UgY2FuIGp1c3Qgc2tpcCB0aGVtPGJyPgomZ3Q7IGFuZCBub3Qgc3RvcmUgdGhl
bSBhdCBhbGwsIGFzIHdlIG5ldmVyIGFjdHVhbGx5IG5lZWQgdGhlbS48YnI+CiZndDsgPGJyPgom
Z3Q7IFtQQVRDSCAyLzJdIFN0b3JlIHRoZSB0aHVtYm5lc3Mgb2YgYSBmdW5jdGlvbiBpbiBzeW1i
b2wgZmxhZ3MuPGJyPgomZ3Q7IDxicj4KJmd0OyBUaGlzIGFsbG93cyB1cyB0byBmaXh1cCB0aGUg
YWRkcmVzcyBvZiB0aGUgc3ltYm9sIGFzIHNvb24gYXMgd2UgcGFyc2UgaXQ8YnI+CiZndDsgc28g
dGhhdCBsbGRiIGlzIG5vdCBjb25mdXNlZCB0aGlua2luZyB0aGVyZSBhcmUgdHdvIGRpZmZlcmVu
dCBzeW1ib2xzIGluPGJyPgomZ3Q7IHRoZSBiaW5hcnkgKG9uZSB3aXRoIHRoZSB0aHVtYiBiaXQs
IG9uZSB3aXRob3V0KS4gQWxzbywgZGlmZmVyZW50aWF0aW5nPGJyPgomZ3Q7IGJldHdlZW4gVEhV
TUIgYW5kIEFSTSBzeW1ib2xzIGFsbG93cyB0aGUgZGVidWdnZXIgdG8gcGxhY2UgdGhlIHJpZ2h0
PGJyPgomZ3Q7IHR5cGUgb2YgYnJlYWtwb2ludC48YnI+CiZndDsgPGJyPgomZ3Q7IDxicj4KJmd0
OyAmbHQ7MDAwMS1Ta2lwLXQtYW5kLWEtc3ltYm9scy1pbi08d2JyPk9iamVjdEZpbGVFTEYucGF0
Y2gmZ3Q7Jmx0OzAwMDItPHdicj5TdG9yZS10aGUtdGh1bWJuZXNzLW9mLWEtPHdicj5mdW5jdGlv
bi1pbi1zeW1ib2wtZmxhZ3MuPHdicj5wYXRjaCZndDs8YnI+Cjxicj4KPC9kaXY+Cjwvc3Bhbj48
L2ZvbnQ+PC9kaXY+CjwvZGl2PgoKPC9ibG9ja3F1b3RlPjwvZGl2Pjxicj48YnIgY2xlYXI9ImFs
bCI+PGRpdj48YnI+PC9kaXY+PC9kaXY+PC9kaXY+PHNwYW4gY2xhc3M9IkhPRW5aYiI+PGZvbnQg
Y29sb3I9IiM4ODg4ODgiPi0tIDxicj48ZGl2IGRpcj0ibHRyIj48dGFibGUgY2VsbHNwYWNpbmc9
IjAiIGNlbGxwYWRkaW5nPSIwIiBzdHlsZT0iY29sb3I6cmdiKDEzNiwxMzYsMTM2KTtmb250LWZh
bWlseTonVGltZXMgTmV3IFJvbWFuJyI+PHRib2R5Pjx0ciBzdHlsZT0iY29sb3I6cmdiKDg1LDg1
LDg1KTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZTpzbWFsbCI+PHRkIG5vd3JhcD0i
IiBzdHlsZT0iYm9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLWNvbG9yOnJnYigyMTMs
MTUsMzcpO2JvcmRlci10b3Atd2lkdGg6MnB4Ij5Ub2RkIEZpYWxhIHw8L3RkPjx0ZCBub3dyYXA9
IiIgc3R5bGU9ImJvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC1jb2xvcjpyZ2IoNTEs
MTA1LDIzMik7Ym9yZGVyLXRvcC13aWR0aDoycHgiPiZuYnNwO1NvZnR3YXJlIEVuZ2luZWVyIHw8
L3RkPjx0ZCBub3dyYXA9IiIgc3R5bGU9ImJvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLXRv
cC1jb2xvcjpyZ2IoMCwxNTMsNTcpO2JvcmRlci10b3Atd2lkdGg6MnB4Ij4mbmJzcDs8YSBocmVm
PSJtYWlsdG86dGZpYWxhQGdvb2dsZS5jb20iIHN0eWxlPSJjb2xvcjpyZ2IoMTcsODUsMjA0KSIg
dGFyZ2V0PSJfYmxhbmsiPjxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1
LDIwNCk7Y29sb3I6cmdiKDM0LDM0LDM0KTtiYWNrZ3JvdW5kLXJlcGVhdDppbml0aWFsIGluaXRp
YWwiPnRmaWFsYUBnb29nbGUuY29tPC9zcGFuPjwvYT4mbmJzcDt8PC90ZD48dGQgbm93cmFwPSIi
IHN0eWxlPSJib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3AtY29sb3I6cmdiKDIzOCwx
NzgsMTcpO2JvcmRlci10b3Atd2lkdGg6MnB4Ij48Zm9udCBjb2xvcj0iIzExNTVjYyI+Jm5ic3A7
PGE+NjUwLTk0My0zMTgwPC9hPjwvZm9udD48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjxicj48
L2Rpdj4KPC9mb250Pjwvc3Bhbj48L2Rpdj4KPC9ibG9ja3F1b3RlPjwvZGl2Pjxicj48YnIgY2xl
YXI9ImFsbCI+PGRpdj48YnI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdj48L2Rpdj4=" style="height:0;font-size:0em;padding:0;margin:0">​</div></div><div><div class="gmail_extra markdown-here-signature">-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small"><td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34);background-repeat:initial initial">tfiala@google.com</span></a> |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"><font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</div></div></div>