Alexey Samsonov
53674245eb
[DWARF parser] Teach DIContext to fetch short (non-linkage) function names for a given address.
...
Change --functions option in llvm-symbolizer tool to accept
values "none", "short" or "linkage". Update the tests and docs
accordingly.
llvm-svn: 209050
2014-05-17 00:07:48 +00:00
Alexey Samsonov
19e01d8ebe
[DWARF parser] Use enums instead of bitfields in DILineInfoSpecifier.
...
It is more appropriate than the current situation, when one flag
(AbsoluteFilePath) is relevant only if another flag is set.
This refactoring would also simplify fetching the short function name
(stored in DW_AT_name) instead of a linkage name returned currently.
No functionality change.
llvm-svn: 208921
2014-05-15 21:24:32 +00:00
Craig Topper
0e2ab5732c
[C++] Use 'nullptr'. Tools edition.
...
llvm-svn: 207176
2014-04-25 04:24:47 +00:00
David Blaikie
e2b1ac50c0
Use unique_ptr to manage ParsedBinariesAndObjects in LLVMSymbolizer
...
llvm-svn: 206866
2014-04-22 05:26:14 +00:00
Alexey Samsonov
5a3863a395
[DWARF parser] Turn DILineInfo into a struct.
...
Immutable DILineInfo doesn't bring any benefits and complicates
code. Also, use std::string instead of SmallString<16> for file
and function names - their length can vary significantly.
No functionality change.
llvm-svn: 206654
2014-04-18 21:36:39 +00:00
Alexey Samsonov
d507177bf9
[C++11] Introduce ObjectFile::symbols() to use range-based loops.
...
Reviewers: rafael
Reviewed By: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3081
llvm-svn: 204031
2014-03-17 07:28:19 +00:00
Alexey Samsonov
515a1ac9bb
[C++11] Use ObjectFile::sections() in commandline llvm tools
...
llvm-svn: 203802
2014-03-13 14:37:36 +00:00
Ahmed Charles
52ce0c101e
Replace OwningPtr<T> with std::unique_ptr<T>.
...
This compiles with no changes to clang/lld/lldb with MSVC and includes
overloads to various functions which are used by those projects and llvm
which have OwningPtr's as parameters. This should allow out of tree
projects some time to move. There are also no changes to libs/Target,
which should help out of tree targets have time to move, if necessary.
llvm-svn: 203083
2014-03-06 05:51:42 +00:00
Ahmed Charles
4a96a15754
[C++11] Replace OwningPtr::take() with OwningPtr::release().
...
llvm-svn: 202957
2014-03-05 10:19:29 +00:00
Alexey Samsonov
7f02b04af0
llvm-symbolizer: use dynamic symbol table if the regular one is stripped.
...
llvm-svn: 202265
2014-02-26 13:10:01 +00:00
Rafael Espindola
4abddc0b33
Change the begin and end methods in ObjectFile to match the style guide.
...
llvm-svn: 201108
2014-02-10 20:24:04 +00:00
Rafael Espindola
6148a226d5
Simplify the handling of iterators in ObjectFile.
...
None of the object file formats reported error on iterator increment. In
retrospect, that is not too surprising: no object format stores symbols or
sections in a linked list or other structure that requires chasing pointers.
As a consequence, all error checking can be done on begin() and end().
This reduces the text segment of bin/llvm-readobj in my machine from 521233 to
518526 bytes.
llvm-svn: 200442
2014-01-30 02:49:50 +00:00
Ed Maste
0234b50a22
llvm-symbolizer: make mangled name heuristic apply to all symbols
...
PR: http://llvm.org/pr18431
Review: http://llvm-reviews.chandlerc.com/D2552
llvm-svn: 199404
2014-01-16 17:25:12 +00:00
Rafael Espindola
966babad9e
Return an ErrorOr<Binary *> from createBinary.
...
I did write a version returning ErrorOr<OwningPtr<Binary> >, but it is too
cumbersome to use without std::move. I will keep the patch locally and submit
when we switch to c++11.
llvm-svn: 199326
2014-01-15 19:37:43 +00:00
Rafael Espindola
635c9e68f4
Check the error code and save a call to sys::fs::exists.
...
llvm-svn: 199293
2014-01-15 04:49:50 +00:00
Chandler Carruth
03b6c941a3
Re-sort #include lines again, prior to moving headers around.
...
llvm-svn: 199080
2014-01-13 08:04:33 +00:00
Alexey Samsonov
5c96c8dca5
llvm-symbolizer: add --obj flag to specify a single object file that should be symbolized.
...
llvm-svn: 197988
2013-12-24 19:33:22 +00:00
NAKAMURA Takumi
955efe24ce
[CMake] Update LLVM_LINK_COMPONENTS for each CMakeLists.txt.
...
llvm-svn: 196908
2013-12-10 11:13:32 +00:00
Alexey Samsonov
ce694a322e
llvm-symbolizer: don't always run demangler on global object names
...
llvm-svn: 192781
2013-10-16 09:54:49 +00:00
Alexey Samsonov
3ddfca05b8
llvm-symbolizer: use real path when looking for debug binary location
...
llvm-svn: 189250
2013-08-26 18:12:03 +00:00
Alexey Samsonov
791d1b9fe4
llvm-symbolizer: add support for .gnu_debuglink section
...
llvm-svn: 188386
2013-08-14 17:09:30 +00:00
NAKAMURA Takumi
ade122d371
LLVMSymbolize.cpp: Fix build. Triple::ArchType is not a namespace.
...
llvm-svn: 186494
2013-07-17 06:53:51 +00:00
Alexey Samsonov
5256cb6f86
llvm-symbolizer: be more careful with colons in file names
...
llvm-svn: 186493
2013-07-17 06:45:36 +00:00
NAKAMURA Takumi
49cb43826a
llvm-symbolizer: Recognize a drive letter on win32. Then "REQUIRES: shell" can be removed.
...
FIXME: Could we use llvm::sys::Path here?
llvm-svn: 185322
2013-07-01 09:51:42 +00:00
Alexey Samsonov
8a74ed4a71
llvm-symbolizer: don't leave dangling pointers after flushing LLVMSymbolizer. Add a destructor.
...
llvm-svn: 185154
2013-06-28 15:08:29 +00:00
Alexey Samsonov
225b8ce2e7
llvm-symbolizer: skip leading underscore in Mach-O symbol table entries
...
llvm-svn: 185151
2013-06-28 14:25:52 +00:00
Alexey Samsonov
f200004c4f
llvm-symbolizer: make name demangling a public static method of LLVMSymbolizer
...
llvm-svn: 185143
2013-06-28 12:06:25 +00:00
Alexey Samsonov
317fbb1c4a
llvm-symbolizer: add support for Mach-O universal binaries
...
llvm-svn: 185137
2013-06-28 08:15:40 +00:00
Alexey Samsonov
07bb3e55fa
[llvm-symbolizer] rewrite r183213 in a more clear way
...
llvm-svn: 183526
2013-06-07 15:25:27 +00:00
Alexey Samsonov
56349d7f8b
[llvm-symbolizer] Avoid calling slow getSymbolSize for Mach-O files. Assume that symbols with zero size are in fact large enough.
...
llvm-svn: 183213
2013-06-04 07:57:38 +00:00
Alexey Samsonov
a4e889ae51
Correct handling invalid filename in llvm-symbolizer
...
llvm-svn: 183102
2013-06-03 14:12:39 +00:00
Rafael Espindola
c44b97c596
At Jim Grosbach's request detemplate Object/MachO.h.
...
We are still able to handle mixed endian objects by swapping one struct at a
time.
llvm-svn: 179778
2013-04-18 18:08:55 +00:00
Rafael Espindola
8c4963712f
Convert MachOObjectFile to a template.
...
For now it is templated only on being 64 or 32 bits. I will add little/big
endian next.
llvm-svn: 179097
2013-04-09 14:49:08 +00:00
Alexey Samsonov
5cf62b262f
llvm-symbolizer: correctly parse filenames given in quotes
...
llvm-svn: 178859
2013-04-05 09:22:24 +00:00
Alexey Samsonov
9ef392c8d9
Fix for r177390: map values are pointers, use DeleteContainerSeconds() instead of .clear()
...
llvm-svn: 177409
2013-03-19 15:33:18 +00:00
Dmitry Vyukov
46ac9e0aa6
llvm-symbolizer: flush internal caches functionality
...
llvm-svn: 177390
2013-03-19 10:24:42 +00:00
Alexey Samsonov
ce14af1162
clang-formatize llvm-symbolizer code
...
llvm-svn: 175255
2013-02-15 08:54:47 +00:00
Dmitry Vyukov
9f7fc60976
llvm-symbolizer: speedup symbol lookup
...
llvm-svn: 175158
2013-02-14 13:06:18 +00:00
Alexey Samsonov
c4a2f261a7
Print error messages from MemoryBuffer::getFile() in llvm-symbolizer
...
llvm-svn: 174346
2013-02-05 07:01:34 +00:00
Alexey Samsonov
581db2e77f
Replace global std::string with const char[]
...
llvm-svn: 174332
2013-02-04 15:55:26 +00:00
Alexey Samsonov
17eb4abe97
llvm-symbolizer: factor out bits of the tool into separate LLVMSymbolize.{h,cpp} files. No functionality change.
...
llvm-svn: 173159
2013-01-22 14:21:19 +00:00
Dmitry Vyukov
0457138552
llvm-symbolizer: add DATA command that allows to symbolize global variables.
...
Example:
>DATA bin/clang 0x26e8e40
<llvm::SparcSubTypeKV
<40799808 416
The last line is address and size of the object.
llvm-svn: 172180
2013-01-11 07:16:20 +00:00
Chandler Carruth
800daa7d3d
Sort the #include lines for tools/...
...
Again, tools are trickier to pick the main module header for than
library source files. I've started to follow the pattern of using
LLVMContext.h when it is included as a stub for program source files.
llvm-svn: 169252
2012-12-04 10:44:52 +00:00
Eric Christopher
9df7c1b185
Rewrite DIContext interface to take an object. Update all callers.
...
llvm-svn: 167757
2012-11-12 21:40:38 +00:00
Alexander Potapenko
7d1c22f15d
Don't use __cxa_demangle under MSVC (which doesn't have it)
...
llvm-svn: 167730
2012-11-12 14:49:58 +00:00
Alexander Potapenko
441c9aafe6
[ASan] Add llvm-symbolizer from to tools/
...
This is the second and last (2/2) part of a change that moves llvm-symbolizer to llvm/tools/, which will allow to build it
with both cmake and configure+make.
llvm-svn: 167723
2012-11-12 11:33:29 +00:00