| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
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
|
|
|
|
|
|
|
| |
We claimed that we were printing the Subystem field when we were
actually printing the Characteristics field.
llvm-svn: 222216
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were a little lax in a few areas:
- We pretended that import libraries were like any old COFF file, they
are not. In fact, they aren't really COFF files at all, we should
probably grow some specialized functionality to handle them smarter.
- Our symbol iterators were more than happy to attempt to go past the
end of the symbol table if you had a symbol with a bad list of
auxiliary symbols.
llvm-svn: 222124
|
|
|
|
|
|
|
| |
printRelocation doesn't use the section contents. No functionality
change intended.
llvm-svn: 221871
|
|
|
|
|
|
|
|
| |
lib/Object is supposed to be robust to malformed object files. Don't
assert if we don't have a symbol table. I'll try to come up with a test
case later.
llvm-svn: 221870
|
|
|
|
| |
llvm-svn: 221855
|
|
|
|
|
|
| |
name rather than just name
llvm-svn: 221812
|
|
|
|
| |
llvm-svn: 221333
|
|
|
|
|
|
|
| |
Do a better job classifying symbols. This increases the consistency
between the COFF handling code and the ELF side of things.
llvm-svn: 220952
|
|
|
|
|
|
|
|
|
| |
to debug using VS2012+
Reviewed at http://reviews.llvm.org/D5755
Thanks to Andrey Guskov for his help investigating this!
llvm-svn: 220526
|
|
|
|
| |
llvm-svn: 219383
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are two methods in SectionRef that can fail:
* getName: The index into the string table can be invalid.
* getContents: The section might point to invalid contents.
Every other method will always succeed and returning and std::error_code just
complicates the code. For example, a section can have an invalid alignment,
but if we are able to get to the section structure at all and create a
SectionRef, we will always be able to read that invalid alignment.
llvm-svn: 219314
|
|
|
|
|
|
|
|
| |
PE/COFF has a special section (.drectve) which can be used to pass options to
the linker (similar to LC_LINKER_OPTION). Add support to llvm-readobj to print
the contents of the section for tests.
llvm-svn: 219228
|
|
|
|
|
|
|
|
|
|
| |
Codeview line tables for functions in different sections refer to a common
STRING_TABLE_SUBSECTION for filenames.
This happens when building with -Gy or with inline functions with MSVC.
Original patch by Jeff Muizelaar!
llvm-svn: 219125
|