3d7b0b8ac7 
								
							 
						 
						
							
							
								
								Rename the 'Attributes' class to 'Attribute'. It's going to represent a single attribute in the future.  
							
							... 
							
							
							
							llvm-svn: 170502 
							
						 
						
							2012-12-19 07:18:57 +00:00  
				
					
						
							
							
								 
						
							
								802d755533 
								
							 
						 
						
							
							
								
								Sort includes for all of the .h files under the 'lib' tree. These were  
							
							... 
							
							
							
							missed in the first pass because the script didn't yet handle include
guards.
Note that the script is now able to handle all of these headers without
manual edits. =]
llvm-svn: 169224 
							
						 
						
							2012-12-04 07:12:27 +00:00  
				
					
						
							
							
								 
						
							
								710c374dfe 
								
							 
						 
						
							
							
								
								The section is .debug_line.  
							
							... 
							
							
							
							llvm-svn: 168666 
							
						 
						
							2012-11-27 01:40:36 +00:00  
				
					
						
							
							
								 
						
							
								59c53c2e08 
								
							 
						 
						
							
							
								
								Add some basic support for the fission addr forms to DebugInfo.  
							
							... 
							
							
							
							llvm-svn: 168223 
							
						 
						
							2012-11-16 23:44:11 +00:00  
				
					
						
							
							
								 
						
							
								a1694c1aaf 
								
							 
						 
						
							
							
								
								[DebugInfo] Generate address ranges for compile units even if .debug_aranges is present: it is often the case that .debug_aranges section contains ranges only for a small subset of compile units. Test cases will be added in separate commits.  
							
							... 
							
							
							
							llvm-svn: 168144 
							
						 
						
							2012-11-16 08:36:25 +00:00  
				
					
						
							
							
								 
						
							
								7370b55262 
								
							 
						 
						
							
							
								
								Rewrite DIContext interface to take an object. Update all callers.  
							
							... 
							
							
							
							llvm-svn: 167757 
							
						 
						
							2012-11-12 21:40:38 +00:00  
				
					
						
							
							
								 
						
							
								9cb13d59b7 
								
							 
						 
						
							
							
								
								Fixup for r167558: Store raw pointer (instead of reference) to RelocMap in DIContext. This is needed to prevent crashes because of dangling reference if the clients don't provide RelocMap to DIContext constructor.  
							
							... 
							
							
							
							llvm-svn: 167728 
							
						 
						
							2012-11-12 14:25:36 +00:00  
				
					
						
							
							
								 
						
							
								7c678de861 
								
							 
						 
						
							
							
								
								Add a relocation visitor to lib object. This works via caching relocated  
							
							... 
							
							
							
							values in a map that can be passed to consumers. Add a testcase that
ensures this works for llvm-dwarfdump.
llvm-svn: 167558 
							
						 
						
							2012-11-07 23:22:07 +00:00  
				
					
						
							
							
								 
						
							
								206cf6487c 
								
							 
						 
						
							
							
								
								Reformat and 80-column this. It's not strictly conforming  
							
							... 
							
							
							
							yet, but it's better.
llvm-svn: 167053 
							
						 
						
							2012-10-30 21:36:43 +00:00  
				
					
						
							
							
								 
						
							
								494109b055 
								
							 
						 
						
							
							
								
								Use a typedef to reduce some typing and reformat code accordingly.  
							
							... 
							
							
							
							llvm-svn: 166077 
							
						 
						
							2012-10-16 23:46:25 +00:00  
				
					
						
							
							
								 
						
							
								02509481f6 
								
							 
						 
						
							
							
								
								Variable name cleanup.  
							
							... 
							
							
							
							llvm-svn: 166076 
							
						 
						
							2012-10-16 23:46:23 +00:00  
				
					
						
							
							
								 
						
							
								b1d83e8c72 
								
							 
						 
						
							
							
								
								Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION.  
							
							... 
							
							
							
							llvm-svn: 164090 
							
						 
						
							2012-09-18 02:01:41 +00:00  
				
					
						
							
							
								 
						
							
								ad06cee239 
								
							 
						 
						
							
							
								
								Stop casting away const qualifier needlessly.  
							
							... 
							
							
							
							llvm-svn: 163258 
							
						 
						
							2012-09-05 22:26:57 +00:00  
				
					
						
							
							
								 
						
							
								09c8a3dde5 
								
							 
						 
						
							
							
								
								Remove unused typedefs gcc4.8 warns about.  
							
							... 
							
							
							
							llvm-svn: 163225 
							
						 
						
							2012-09-05 17:55:46 +00:00  
				
					
						
							
							
								 
						
							
								c942e6b781 
								
							 
						 
						
							
							
								
								Add support for fetching inlining context (stack of source code locations)  
							
							... 
							
							
							
							by instruction address from DWARF.
Add --inlining flag to llvm-dwarfdump to demonstrate and test this functionality,
so that "llvm-dwarfdump --inlining --address=0x..." now works much like
"addr2line -i 0x...", provided that the binary has debug info
(Clang's -gline-tables-only *is* enough).
llvm-svn: 163128 
							
						 
						
							2012-09-04 08:12:33 +00:00  
				
					
						
							
							
								 
						
							
								45be793e3a 
								
							 
						 
						
							
							
								
								Refactor fetching file/line info from DWARFContext to simplify the  
							
							... 
							
							
							
							code and allow better code reuse. Make the code a bit more conforming
to LLVM code style.
No functionality change.
llvm-svn: 162895 
							
						 
						
							2012-08-30 07:49:50 +00:00  
				
					
						
							
							
								 
						
							
								ef271cce0a 
								
							 
						 
						
							
							
								
								Fix compile error when building with C++11 - clang thinks that PRIx64 is a user-defined suffix or something  
							
							... 
							
							
							
							llvm-svn: 162704 
							
						 
						
							2012-08-27 22:53:35 +00:00  
				
					
						
							
							
								 
						
							
								37338a8352 
								
							 
						 
						
							
							
								
								DWARFDebugRangeList.cpp: Use PRIx64 for uint64_t as format string.  
							
							... 
							
							
							
							llvm-svn: 162665 
							
						 
						
							2012-08-27 10:10:10 +00:00  
				
					
						
							
							
								 
						
							
								b4c95daf86 
								
							 
						 
						
							
							
								
								[DebugInfo] fixup for r162657: update CMakeLists.txt  
							
							... 
							
							
							
							llvm-svn: 162659 
							
						 
						
							2012-08-27 07:24:43 +00:00  
				
					
						
							
							
								 
						
							
								034e57a297 
								
							 
						 
						
							
							
								
								Add basic support for .debug_ranges section to LLVM's DebugInfo library.  
							
							... 
							
							
							
							This section (introduced in DWARF-3) is used to define instruction address
ranges for functions that are not contiguous and can't be described
by low_pc/high_pc attributes (this is the usual case for inlined subroutines).
The patch is the first step to support fetching complete inlining info from DWARF.
Reviewed by Benjamin Kramer.
llvm-svn: 162657 
							
						 
						
							2012-08-27 07:17:47 +00:00  
				
					
						
							
							
								 
						
							
								d999bb7ff4 
								
							 
						 
						
							
							
								
								Add support for some missing DW_FORM_*.  
							
							... 
							
							
							
							TODO: Fix code duplication and coding style.
llvm-svn: 162525 
							
						 
						
							2012-08-24 01:14:23 +00:00  
				
					
						
							
							
								 
						
							
								67942acc6b 
								
							 
						 
						
							
							
								
								Formatting.  
							
							... 
							
							
							
							llvm-svn: 162524 
							
						 
						
							2012-08-24 01:14:21 +00:00  
				
					
						
							
							
								 
						
							
								20b897b693 
								
							 
						 
						
							
							
								
								Formatting cleanup.  
							
							... 
							
							
							
							llvm-svn: 162499 
							
						 
						
							2012-08-23 23:26:57 +00:00  
				
					
						
							
							
								 
						
							
								9142ea7bec 
								
							 
						 
						
							
							
								
								Add an assert here in case parsing gave us a NULL compile unit.  
							
							... 
							
							
							
							llvm-svn: 162498 
							
						 
						
							2012-08-23 23:21:11 +00:00  
				
					
						
							
							
								 
						
							
								c2ce00418c 
								
							 
						 
						
							
							
								
								80-col.  
							
							... 
							
							
							
							llvm-svn: 162422 
							
						 
						
							2012-08-23 00:52:51 +00:00  
				
					
						
							
							
								 
						
							
								0ef6ebc7e4 
								
							 
						 
						
							
							
								
								Tidy.  
							
							... 
							
							
							
							llvm-svn: 162421 
							
						 
						
							2012-08-23 00:52:49 +00:00  
				
					
						
							
							
								 
						
							
								947228c4f7 
								
							 
						 
						
							
							
								
								Fix the representation of debug line table in DebugInfo LLVM library,  
							
							... 
							
							
							
							and "instruction address -> file/line" lookup.
Instead of plain collection of rows, debug line table for compilation unit is now
treated as the number of row ranges, describing sequences (series of contiguous machine
instructions). The sequences are not always listed in the order of increasing
address, so previously used std::lower_bound() sometimes produced wrong results.
Now the instruction address lookup consists of two stages: finding the correct
sequence, and searching for address in range of rows for this sequence.
llvm-svn: 161414 
							
						 
						
							2012-08-07 11:46:57 +00:00  
				
					
						
							
							
								 
						
							
								e16e16add6 
								
							 
						 
						
							
							
								
								DebugInfo library: add support for fetching absolute paths to source files  
							
							... 
							
							
							
							(instead of basenames) from DWARF. Use this behavior in llvm-dwarfdump tool.
Reviewed by Benjamin Kramer.
llvm-svn: 160496 
							
						 
						
							2012-07-19 07:03:58 +00:00  
				
					
						
							
							
								 
						
							
								b604ff2a07 
								
							 
						 
						
							
							
								
								Improve behavior of DebugInfoEntryMinimal::getSubprogramName() introduced in r159512.  
							
							... 
							
							
							
							To fetch a subprogram name we should not only inspect the DIE for this subprogram, but optionally inspect
its specification, or its abstract origin (even if there is no inlining), or even specification of an abstract origin.
Reviewed by Benjamin Kramer.
llvm-svn: 160365 
							
						 
						
							2012-07-17 15:28:35 +00:00  
				
					
						
							
							
								 
						
							
								5cbbf4ca57 
								
							 
						 
						
							
							
								
								Fix a bug in DebugInfo lib, extend a comment for one of the methods  
							
							... 
							
							
							
							llvm-svn: 159707 
							
						 
						
							2012-07-04 09:42:54 +00:00  
				
					
						
							
							
								 
						
							
								f4462fa3ca 
								
							 
						 
						
							
							
								
								This patch extends the libLLVMDebugInfo which contains a minimalistic DWARF parser:  
							
							... 
							
							
							
							1) DIContext is now able to return function name for a given instruction address (besides file/line info).
2) llvm-dwarfdump accepts flag --functions that prints the function name (if address is specified by --address flag).
3) test case that checks the basic functionality of llvm-dwarfdump added
llvm-svn: 159512 
							
						 
						
							2012-07-02 05:54:45 +00:00  
				
					
						
							
							
								 
						
							
								379018b2da 
								
							 
						 
						
							
							
								
								Fix a C++11 UDL conflict.  
							
							... 
							
							
							
							Still not fixed in the standard ;)
llvm-svn: 154044 
							
						 
						
							2012-04-04 20:33:56 +00:00  
				
					
						
							
							
								 
						
							
								46a9f016c5 
								
							 
						 
						
							
							
								
								More dead code removal (using -Wunreachable-code)  
							
							... 
							
							
							
							llvm-svn: 148578 
							
						 
						
							2012-01-20 21:51:11 +00:00  
				
					
						
							
							
								 
						
							
								a379b18173 
								
							 
						 
						
							
							
								
								Unweaken vtables as per  http://llvm.org/docs/CodingStandards.html#ll_virtual_anch  
							
							... 
							
							
							
							llvm-svn: 146960 
							
						 
						
							2011-12-20 02:50:00 +00:00  
				
					
						
							
							
								 
						
							
								27a7489a03 
								
							 
						 
						
							
							
								
								LLVMBuild: Remove trailing newline, which irked me.  
							
							... 
							
							
							
							llvm-svn: 146409 
							
						 
						
							2011-12-12 19:48:00 +00:00  
				
					
						
							
							
								 
						
							
								539d0a8a09 
								
							 
						 
						
							
							
								
								build/CMake: Finish removal of add_llvm_library_dependencies.  
							
							... 
							
							
							
							llvm-svn: 145420 
							
						 
						
							2011-11-29 19:25:30 +00:00  
				
					
						
							
							
								 
						
							
								79730ad07d 
								
							 
						 
						
							
							
								
								Audited all the format strings in libDebugInfo and fixed those that didn't match the types.  
							
							... 
							
							
							
							llvm-svn: 143814 
							
						 
						
							2011-11-05 16:01:13 +00:00  
				
					
						
							
							
								 
						
							
								f7e0a31f8a 
								
							 
						 
						
							
							
								
								Reduce the offsets in DwarfDebugInfoEntry to 32 bit, they're printed with %x and  
							
							... 
							
							
							
							that breaks on big-endian machines.
I have to clean up the 32/64 bit confusion in libDebugInfo some day.
llvm-svn: 143812 
							
						 
						
							2011-11-05 15:35:00 +00:00  
				
					
						
							
							
								 
						
							
								f3da529028 
								
							 
						 
						
							
							
								
								Add more PRI.64 macros for MSVC and use them throughout the codebase.  
							
							... 
							
							
							
							llvm-svn: 143799 
							
						 
						
							2011-11-05 08:57:40 +00:00  
				
					
						
							
							
								 
						
							
								bf9bba47a1 
								
							 
						 
						
							
							
								
								build: Add initial cut at LLVMBuild.txt files.  
							
							... 
							
							
							
							llvm-svn: 143634 
							
						 
						
							2011-11-03 18:53:17 +00:00  
				
					
						
							
							
								 
						
							
								f995985eba 
								
							 
						 
						
							
							
								
								lib/DebugInfo/DWARFDebugLine.cpp: De-Unicode-ify.  
							
							... 
							
							
							
							llvm-svn: 141484 
							
						 
						
							2011-10-08 11:22:47 +00:00  
				
					
						
							
							
								 
						
							
								ade616cb57 
								
							 
						 
						
							
							
								
								Whitespace  
							
							... 
							
							
							
							llvm-svn: 141483 
							
						 
						
							2011-10-08 11:22:41 +00:00  
				
					
						
							
							
								 
						
							
								2eeb4e5bd4 
								
							 
						 
						
							
							
								
								DWARF: avoid unnecessary map lookups.  
							
							... 
							
							
							
							llvm-svn: 140260 
							
						 
						
							2011-09-21 17:31:42 +00:00  
				
					
						
							
							
								 
						
							
								67b014b2c2 
								
							 
						 
						
							
							
								
								Namespacify.  
							
							... 
							
							
							
							llvm-svn: 139892 
							
						 
						
							2011-09-16 00:35:06 +00:00  
				
					
						
							
							
								 
						
							
								112ec17e1b 
								
							 
						 
						
							
							
								
								DWARF: Reset the state after parsing a line table prologue and remove an unnecessary lookup.  
							
							... 
							
							
							
							llvm-svn: 139859 
							
						 
						
							2011-09-15 21:59:13 +00:00  
				
					
						
							
							
								 
						
							
								901339d070 
								
							 
						 
						
							
							
								
								DWARF: Don't crash when looking up an invalid address.  
							
							... 
							
							
							
							llvm-svn: 139846 
							
						 
						
							2011-09-15 21:08:54 +00:00  
				
					
						
							
							
								 
						
							
								2602ca67e8 
								
							 
						 
						
							
							
								
								DWARF: Put all the pieces we have together and provide a single accessor to DIContext that provides line information when given an address.  
							
							... 
							
							
							
							llvm-svn: 139836 
							
						 
						
							2011-09-15 20:43:22 +00:00  
				
					
						
							
							
								 
						
							
								679e1752f8 
								
							 
						 
						
							
							
								
								DWARF: Remove accessors that parse the whole line table section in one go, this can't possibly work.  
							
							... 
							
							
							
							The address size is specified by the compile unit associated with a line table, there is no global address size.
llvm-svn: 139835 
							
						 
						
							2011-09-15 20:43:18 +00:00  
				
					
						
							
							
								 
						
							
								6dda032003 
								
							 
						 
						
							
							
								
								DWARF: Print line tables per compile unit, so they get the right address size.  
							
							... 
							
							
							
							llvm-svn: 139808 
							
						 
						
							2011-09-15 18:02:20 +00:00  
				
					
						
							
							
								 
						
							
								07d4b1c455 
								
							 
						 
						
							
							
								
								DWARF: wire up .debug_str dumping.  
							
							... 
							
							
							
							llvm-svn: 139799 
							
						 
						
							2011-09-15 16:57:13 +00:00  
				
					
						
							
							
								 
						
							
								9bca64ff2a 
								
							 
						 
						
							
							
								
								DWARF: Make DIE printing more bulletproof.  
							
							... 
							
							
							
							llvm-svn: 139786 
							
						 
						
							2011-09-15 05:43:00 +00:00  
				
					
						
							
							
								 
						
							
								21a5092830 
								
							 
						 
						
							
							
								
								DWARF: Print the number for unknown abbrev fields.  
							
							... 
							
							
							
							Thanks Nick!
llvm-svn: 139778 
							
						 
						
							2011-09-15 04:15:59 +00:00  
				
					
						
							
							
								 
						
							
								4137b6a2b6 
								
							 
						 
						
							
							
								
								DWARF: Fail gracefully when encountering unknown values in an abbrev.  
							
							... 
							
							
							
							llvm-svn: 139777 
							
						 
						
							2011-09-15 04:00:58 +00:00  
				
					
						
							
							
								 
						
							
								4d0449204e 
								
							 
						 
						
							
							
								
								Give structs with virtual methods a virtual destructor.  
							
							... 
							
							
							
							llvm-svn: 139776 
							
						 
						
							2011-09-15 03:41:51 +00:00  
				
					
						
							
							
								 
						
							
								21b6f1188f 
								
							 
						 
						
							
							
								
								DWARF: Silence GCC -Wsign-compare warning.  
							
							... 
							
							
							
							llvm-svn: 139775 
							
						 
						
							2011-09-15 03:20:04 +00:00  
				
					
						
							
							
								 
						
							
								123bfbbb73 
								
							 
						 
						
							
							
								
								DWARF: Fix indentation.  
							
							... 
							
							
							
							llvm-svn: 139774 
							
						 
						
							2011-09-15 03:11:09 +00:00  
				
					
						
							
							
								 
						
							
								a57c46aa49 
								
							 
						 
						
							
							
								
								DWARF: Include <algorithm> explicitly.  
							
							... 
							
							
							
							llvm-svn: 139773 
							
						 
						
							2011-09-15 02:19:33 +00:00  
				
					
						
							
							
								 
						
							
								5acab501de 
								
							 
						 
						
							
							
								
								DWARF: Add basic support for line tables.  
							
							... 
							
							
							
							The llvm-dwarfdump output isn't very verbose yet.
llvm-svn: 139771 
							
						 
						
							2011-09-15 02:12:05 +00:00  
				
					
						
							
							
								 
						
							
								3266493603 
								
							 
						 
						
							
							
								
								DWARF: Generate the address lookup table from the DIE tree if .debug_aranges is not available.  
							
							... 
							
							
							
							Ported from LLDB.
llvm-svn: 139732 
							
						 
						
							2011-09-14 20:52:27 +00:00  
				
					
						
							
							
								 
						
							
								a59d118b6c 
								
							 
						 
						
							
							
								
								DWARF: Reorder fields to reduce padding.  
							
							... 
							
							
							
							llvm-svn: 139712 
							
						 
						
							2011-09-14 18:34:47 +00:00  
				
					
						
							
							
								 
						
							
								f915acc613 
								
							 
						 
						
							
							
								
								DWARF: Improve indentation of DIE dumping so it's easier to see the structure.  
							
							... 
							
							
							
							llvm-svn: 139705 
							
						 
						
							2011-09-14 17:54:56 +00:00  
				
					
						
							
							
								 
						
							
								973b5cde7e 
								
							 
						 
						
							
							
								
								llvm-dwarfdump: Make the "is debug info section" heuristic stricter so it doesn't accidentaly picks up the wrong section.  
							
							... 
							
							
							
							Also add some validation code to the aranges section parser.
Fixes PR10926.
llvm-svn: 139701 
							
						 
						
							2011-09-14 17:28:13 +00:00  
				
					
						
							
							
								 
						
							
								a9e7fb678d 
								
							 
						 
						
							
							
								
								Don't rely in <algorithm> being pulled in transitively.  
							
							... 
							
							
							
							llvm-svn: 139684 
							
						 
						
							2011-09-14 01:27:48 +00:00  
				
					
						
							
							
								 
						
							
								a6002fd920 
								
							 
						 
						
							
							
								
								DWARF: Port support for parsing .debug_aranges section from LLDB and wire it up to llvm-dwarfdump.  
							
							... 
							
							
							
							This is only one half of it, the part that caches address ranges from the DIEs when .debug_aranges is
not available will be ported soon.
llvm-svn: 139680 
							
						 
						
							2011-09-14 01:09:52 +00:00  
				
					
						
							
							
								 
						
							
								1b2a65ca3a 
								
							 
						 
						
							
							
								
								DebugInfo: Don't print DIEs multiple times.  
							
							... 
							
							
							
							llvm-svn: 139671 
							
						 
						
							2011-09-14 00:15:32 +00:00  
				
					
						
							
							
								 
						
							
								eaa7433c85 
								
							 
						 
						
							
							
								
								Style & indentation tweaks.  
							
							... 
							
							
							
							llvm-svn: 139646 
							
						 
						
							2011-09-13 21:47:32 +00:00  
				
					
						
							
							
								 
						
							
								cef8ee3291 
								
							 
						 
						
							
							
								
								I know copy&paste!  
							
							... 
							
							
							
							llvm-svn: 139628 
							
						 
						
							2011-09-13 19:49:53 +00:00  
				
					
						
							
							
								 
						
							
								aa2f78f5e6 
								
							 
						 
						
							
							
								
								Sketch out a DWARF parser.  
							
							... 
							
							
							
							This introduces a new library to LLVM: libDebugInfo. It will provide debug information
parsing to LLVM. Much of the design and some of the code is taken from the LLDB project.
It also contains an llvm-dwarfdump tool that can dump the abbrevs and DIEs from an
object file. It can be used to write tests for DWARF input and output easily.
llvm-svn: 139627 
							
						 
						
							2011-09-13 19:42:23 +00:00