<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 20, 2015 at 12:51 PM, Zachary Turner <span dir="ltr"><<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">RVA - relative virtual address (i.e. offset from the beginning of the module, so that when it is loaded at runtime, you add that value to the module load address to get the absolute virtual address of the symbol). I thought this was a universal term, but I guess not :) What does DWARF call this?<br></div></blockquote><div><br>DWARF actually uses runtime relocations - so it's a relocatable address (like those found in the actual executable data - jump destinations, etc). Usually that means when you dump the dwarf & the dumper prints the bytes of the 'address', it's printing whatever bytes are kept there to process the relocation (which, in an object file is sometimes zeros - because it's an unresolved symbol that has to wait until link time - and in a linked executable it'd be the relative virtual address you're describing (because the relocation says "take what's in these bytes, add the base address, and write that over the bytes" - other executable formats could have relocations that store the bytes off in the relocation table rather than in the bytes to be modified, etc) - but I'm not sure what, if anything, the canonical term is for that in the ELFine world)<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"></div><div class="HOEnZb"><div class="h5"><br><div class="gmail_quote">On Fri Feb 20 2015 at 12:48:50 PM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Feb 20, 2015 at 12:44 PM, Zachary Turner <span dir="ltr"><<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Bump. The options being specified on the command line might be a little confusing. I actually have a followup patch which drastically simplifies the options and probably will make reading these tests easier. But I was goign to commit that after this (as the patch updates the tests and output as well).<br></blockquote></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br>Sure<br> </div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In any case, the basic idea of pdbdump-symbol-format.test is to dump symbol entries from object files. Since we don't know what the internal format of PDB is, I wrote the dumper to dump entries in ways that would make it easier for people to understand what the information in the PDB represents *semantically*, as opposed to physically. This is useful for someone writing a debugger, for example, so that they can know at a high level what kind of information they can expect to get from the PDB.<br></blockquote></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br>*nod* There's some risk that a higher level output might hide representational details that are relevant to consuming the debug info - hence the desire to keep it pretty bare-metal. But there's certainly tradeoffs - dwarfdump is growing higher level dumping functionality slowly at the moment, so the two tools might end up meeting in the middle, as it were.<br> </div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In this example, you can see that the PDB knows about 2 object files, symbolformat.obj and symbolformat-fpo.obj. For each one, all the symbols are dumped, which consist mostly of functions due to the fact that the original source code also consists mostly of functions. RVAs </blockquote></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br>RVAs?<br><br>Anyway, looks like a good start - no doubt we'll iterate on it all a lot as it goes along.</div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br><br>- David<br><br> </div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">of the functions are dumped as well, in a format like [start+prologue_length - end-epilogue_length]<br>
<div><div><br>
<br>
<a href="http://reviews.llvm.org/D7656" target="_blank">http://reviews.llvm.org/D7656</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>
</div></div></blockquote></div></div></div></blockquote></div>
</div></div></blockquote></div><br></div></div>