|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| | It makes it easier to correlate with assembly dumps, which are typically
given with hex offsets.
llvm-svn: 260619 | 
| | 
| 
| 
| | llvm-svn: 259904 | 
| | 
| 
| 
| | llvm-svn: 259806 | 
| | 
| 
| 
| | llvm-svn: 259805 | 
| | 
| 
| 
| | llvm-svn: 259804 | 
| | 
| 
| 
| | llvm-svn: 259723 | 
| | 
| 
| 
| | llvm-svn: 259719 | 
| | 
| 
| 
| 
| 
| 
| 
| | This directive emits the binary annotations that describe line and code
deltas in inlined call sites. Single-stepping through inlined frames in
windbg now works.
llvm-svn: 259535 | 
| | 
| 
| 
| 
| 
| | Bug pointed out by George Rimar.
llvm-svn: 259205 | 
| | 
| 
| 
| 
| 
| 
| 
| | This reverts commit r259126 and relands r259117.
This time with updated library dependencies.
llvm-svn: 259130 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | This reverts commit r259117.
The LineInfo constructor is defined in the codeview library and we have
to link against it now. Doing that isn't trivial, so reverting for now.
llvm-svn: 259126 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Adds a new family of .cv_* directives to LLVM's variant of GAS syntax:
- .cv_file: Similar to DWARF .file directives
- .cv_loc: Similar to the DWARF .loc directive, but starts with a
  function id. CodeView line tables are emitted by function instead of
  by compilation unit, so we needed an extra field to communicate this.
  Rather than overloading the .loc direction further, we decided it was
  better to have our own directive.
- .cv_stringtable: Emits the codeview string table at the current
  position. Currently this just contains the filenames as
  null-terminated strings.
- .cv_filechecksums: Emits the file checksum table for all files used
  with .cv_file so far. There is currently no support for emitting
  actual checksums, just filenames.
This moves the line table emission code down into the assembler.  This
is in preparation for implementing the inlined call site line table
format. The inline line table format encoding algorithm requires knowing
the absolute code offsets, so it must run after the assembler has laid
out the code.
David Majnemer collaborated on this patch.
llvm-svn: 259117 | 
| | 
| 
| 
| | llvm-svn: 258368 | 
| | 
| 
| 
| | llvm-svn: 258079 | 
| | 
| 
| 
| | llvm-svn: 257943 | 
| | 
| 
| 
| | llvm-svn: 257910 | 
| | 
| 
| 
| | llvm-svn: 257846 | 
| | 
| 
| 
| 
| 
| 
| | I kept forgetting which number is the line delta and which is the code
delta.
llvm-svn: 257813 | 
| | 
| 
| 
| | llvm-svn: 257804 | 
| | 
| 
| 
| | llvm-svn: 257790 | 
| | 
| 
| 
| | llvm-svn: 257780 | 
| | 
| 
| 
| | llvm-svn: 257778 | 
| | 
| 
| 
| | llvm-svn: 257777 | 
| | 
| 
| 
| 
| 
| 
| 
| | These fields are almost always zero. However, there are relocations
against them, and we should print the relocation symbol with it as
SYM+0xNN.
llvm-svn: 257776 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Binary annotations are encoded along the lines of UTF-8 and ECI but with
a few minor differences.
The algorithm specified in "ECMA-335 CLI Section II.3.2 - Blobs and
Signatures" is used to compress binary annotations.  Signed binary
annotations are encoded like unsigned annotations except the sign bit is
rotated left to reduce the number of bits needed to be encoded.
llvm-svn: 257742 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | Moves some .def files into include/DebugInfo/CodeView.
Aslo remove a 'using namespace' directive from a header in readobj and
update the uses of the endian helper types to compensate.
llvm-svn: 257712 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | This rewrites and expands the existing codeview dumping functionality in
llvm-readobj using techniques similar to those in lib/Object. This defines a
number of new records and enums useful for reading memory mapped codeview
sections in COFF objects.
The dumper is intended as a testing tool for LLVM as it grows more codeview
output capabilities.
Reviewers: majnemer
Differential Revision: http://reviews.llvm.org/D16104
llvm-svn: 257658 | 
| | 
| 
| 
| 
| 
| 
| 
| | This change has us print out fields we didn't previously understand.  To
improve readability, we now group column information with it's
respective line.
llvm-svn: 257552 | 
| | 
| 
| 
| 
| 
| | Relands r255790 with fixed tests.
llvm-svn: 255793 | 
| | 
| 
| 
| 
| 
| | This reverts commit r255790.
llvm-svn: 255791 | 
| | 
| 
| 
| | llvm-svn: 255790 | 
| | 
| 
| 
| 
| 
| 
| | The symbol being printed in this field comes from the main symbol table,
not 0xF1 subsection. Use LinkageName to make that a lot clearer.
llvm-svn: 255596 | 
| | 
| 
| 
| | llvm-svn: 243658 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | llvm-readobj exists for testing llvm. We can safely stop the program
the first time we know the input in corrupted.
This is in preparation for making it handle a few more broken files.
llvm-svn: 242656 | 
| | 
| 
| 
| | llvm-svn: 241831 | 
| | 
| 
| 
| | llvm-svn: 241783 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | Column information is present in CodeView when the line table subsection
has bit 0 set to 1 in it's flags field.  The column information is
represented as a pair of 16-bit quantities: a starting and ending
column.  This information is present at the end of the chunk, after all
the line-PC pairs.
llvm-svn: 241764 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | When talking about the virtual address of sections the coff spec says:
  ... for simplicity, compilers should set this to zero. Otherwise, it is an
  arbitrary value that is subtracted from offsets during relocation.
We don't currently subtract it, so check that it is zero.
If some producer does create such files, we can change getRelocationOffset
instead.
llvm-svn: 241447 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | This function can really fail since the string table offset can be out of
bounds.
Using ErrorOr makes sure the error is checked.
Hopefully a lot of the boilerplate code in tools/* can go away once we have
a diagnostic manager in Object.
llvm-svn: 241297 | 
| | 
| 
| 
| | llvm-svn: 241042 | 
| | 
| 
| 
| | llvm-svn: 241033 | 
| | 
| 
| 
| | llvm-svn: 241021 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | The parser provides a convenient interface for reading llvm stackmap v1 sections
in object files.
This patch also includes a new option for llvm-readobj, '-stackmap', which uses
the parser to pretty-print stackmap sections for debugging/testing purposes.
llvm-svn: 240860 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | make_error_code(object_error) is slow because object::object_category()
uses a ManagedStatic variable. But the real problem is that the function is
called too frequently. This patch uses std::error_code() instead of
object_error::success. In most cases, we return "success", so this patch
reduces number of function calls to that function.
http://reviews.llvm.org/D10333
llvm-svn: 239409 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | This will help us study the format of individual symbol
records more closely.
Differential Revision: http://reviews.llvm.org/D7664
Reviewed by: Timur Iskhodzhanov
llvm-svn: 229730 | 
| | 
| 
| 
| 
| 
| 
| | Add an additional based relocation to the enumeration of based relocation names.
The lack of the enumerator value causes issues when inspecting WoA binaries.
llvm-svn: 226314 | 
| | 
| 
| 
| 
| 
| 
| | This enhances llvm-readobj to print out the COFF export table, similar to the
-coff-import option.  This is useful for testing in lld.
llvm-svn: 225120 | 
| | 
| 
| 
| 
| 
| | Appeasing mingw without C++11 std::to_string
llvm-svn: 222369 | 
| | 
| 
| 
| 
| 
| 
| 
| | It printed out base relocation table header as table entry.
This patch also makes llvm-readobj to not skip ABSOLUTE entries
becuase it was confusing.
llvm-svn: 222299 | 
| | 
| 
| 
| | llvm-svn: 222289 |