rdwarf 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +28 -0
  6. data/README.md +39 -0
  7. data/Rakefile +8 -0
  8. data/bin/console +14 -0
  9. data/bin/setup +7 -0
  10. data/ext/rdwarf/depend +5 -0
  11. data/ext/rdwarf/extconf.rb +29 -0
  12. data/ext/rdwarf/libdwarf/CHANGES +102 -0
  13. data/ext/rdwarf/libdwarf/CODINGSTYLE +71 -0
  14. data/ext/rdwarf/libdwarf/COPYING +28 -0
  15. data/ext/rdwarf/libdwarf/ChangeLog +619 -0
  16. data/ext/rdwarf/libdwarf/ChangeLog2006 +835 -0
  17. data/ext/rdwarf/libdwarf/ChangeLog2007 +217 -0
  18. data/ext/rdwarf/libdwarf/ChangeLog2008 +263 -0
  19. data/ext/rdwarf/libdwarf/ChangeLog2009 +348 -0
  20. data/ext/rdwarf/libdwarf/ChangeLog2010 +175 -0
  21. data/ext/rdwarf/libdwarf/ChangeLog2011 +297 -0
  22. data/ext/rdwarf/libdwarf/ChangeLog2012 +131 -0
  23. data/ext/rdwarf/libdwarf/ChangeLog2013 +238 -0
  24. data/ext/rdwarf/libdwarf/ChangeLog2014 +399 -0
  25. data/ext/rdwarf/libdwarf/LGPL.txt +504 -0
  26. data/ext/rdwarf/libdwarf/LIBDWARFCOPYRIGHT +40 -0
  27. data/ext/rdwarf/libdwarf/Makefile.in +220 -0
  28. data/ext/rdwarf/libdwarf/NEWS +535 -0
  29. data/ext/rdwarf/libdwarf/README +235 -0
  30. data/ext/rdwarf/libdwarf/checkexamples.c +1179 -0
  31. data/ext/rdwarf/libdwarf/cmplrs/dwarf_addr_finder.h +55 -0
  32. data/ext/rdwarf/libdwarf/common.c +62 -0
  33. data/ext/rdwarf/libdwarf/common.h +38 -0
  34. data/ext/rdwarf/libdwarf/config.h.in +146 -0
  35. data/ext/rdwarf/libdwarf/configure +5581 -0
  36. data/ext/rdwarf/libdwarf/configure.in +167 -0
  37. data/ext/rdwarf/libdwarf/dw-linetableheader.txt +39 -0
  38. data/ext/rdwarf/libdwarf/dwarf.h +1342 -0
  39. data/ext/rdwarf/libdwarf/dwarf_abbrev.c +291 -0
  40. data/ext/rdwarf/libdwarf/dwarf_abbrev.h +45 -0
  41. data/ext/rdwarf/libdwarf/dwarf_addr_finder.c +676 -0
  42. data/ext/rdwarf/libdwarf/dwarf_alloc.c +685 -0
  43. data/ext/rdwarf/libdwarf/dwarf_alloc.h +38 -0
  44. data/ext/rdwarf/libdwarf/dwarf_arange.c +595 -0
  45. data/ext/rdwarf/libdwarf/dwarf_arange.h +62 -0
  46. data/ext/rdwarf/libdwarf/dwarf_base_types.h +157 -0
  47. data/ext/rdwarf/libdwarf/dwarf_die_deliv.c +1802 -0
  48. data/ext/rdwarf/libdwarf/dwarf_die_deliv.h +46 -0
  49. data/ext/rdwarf/libdwarf/dwarf_elf_access.c +1348 -0
  50. data/ext/rdwarf/libdwarf/dwarf_elf_access.h +46 -0
  51. data/ext/rdwarf/libdwarf/dwarf_error.c +492 -0
  52. data/ext/rdwarf/libdwarf/dwarf_error.h +53 -0
  53. data/ext/rdwarf/libdwarf/dwarf_form.c +1302 -0
  54. data/ext/rdwarf/libdwarf/dwarf_frame.c +2454 -0
  55. data/ext/rdwarf/libdwarf/dwarf_frame.h +418 -0
  56. data/ext/rdwarf/libdwarf/dwarf_frame2.c +1533 -0
  57. data/ext/rdwarf/libdwarf/dwarf_frame3.c +282 -0
  58. data/ext/rdwarf/libdwarf/dwarf_funcs.c +123 -0
  59. data/ext/rdwarf/libdwarf/dwarf_funcs.h +33 -0
  60. data/ext/rdwarf/libdwarf/dwarf_gdbindex.c +520 -0
  61. data/ext/rdwarf/libdwarf/dwarf_gdbindex.h +97 -0
  62. data/ext/rdwarf/libdwarf/dwarf_global.c +612 -0
  63. data/ext/rdwarf/libdwarf/dwarf_global.h +117 -0
  64. data/ext/rdwarf/libdwarf/dwarf_harmless.c +228 -0
  65. data/ext/rdwarf/libdwarf/dwarf_harmless.h +31 -0
  66. data/ext/rdwarf/libdwarf/dwarf_incl.h +61 -0
  67. data/ext/rdwarf/libdwarf/dwarf_init_finish.c +1263 -0
  68. data/ext/rdwarf/libdwarf/dwarf_leb.c +159 -0
  69. data/ext/rdwarf/libdwarf/dwarf_line.c +1822 -0
  70. data/ext/rdwarf/libdwarf/dwarf_line.h +446 -0
  71. data/ext/rdwarf/libdwarf/dwarf_line2.c +98 -0
  72. data/ext/rdwarf/libdwarf/dwarf_line_table_reader_common.c +1583 -0
  73. data/ext/rdwarf/libdwarf/dwarf_loc.c +1525 -0
  74. data/ext/rdwarf/libdwarf/dwarf_loc.h +149 -0
  75. data/ext/rdwarf/libdwarf/dwarf_loc2.c +833 -0
  76. data/ext/rdwarf/libdwarf/dwarf_macro.c +479 -0
  77. data/ext/rdwarf/libdwarf/dwarf_macro.h +35 -0
  78. data/ext/rdwarf/libdwarf/dwarf_opaque.h +778 -0
  79. data/ext/rdwarf/libdwarf/dwarf_original_elf_init.c +219 -0
  80. data/ext/rdwarf/libdwarf/dwarf_print_lines.c +631 -0
  81. data/ext/rdwarf/libdwarf/dwarf_pubtypes.c +132 -0
  82. data/ext/rdwarf/libdwarf/dwarf_query.c +1594 -0
  83. data/ext/rdwarf/libdwarf/dwarf_ranges.c +194 -0
  84. data/ext/rdwarf/libdwarf/dwarf_reloc_arm.h +308 -0
  85. data/ext/rdwarf/libdwarf/dwarf_reloc_mips.h +117 -0
  86. data/ext/rdwarf/libdwarf/dwarf_reloc_ppc.h +242 -0
  87. data/ext/rdwarf/libdwarf/dwarf_reloc_ppc64.h +272 -0
  88. data/ext/rdwarf/libdwarf/dwarf_reloc_x86_64.h +127 -0
  89. data/ext/rdwarf/libdwarf/dwarf_sort_line.c +665 -0
  90. data/ext/rdwarf/libdwarf/dwarf_string.c +82 -0
  91. data/ext/rdwarf/libdwarf/dwarf_stubs.c +38 -0
  92. data/ext/rdwarf/libdwarf/dwarf_tied.c +423 -0
  93. data/ext/rdwarf/libdwarf/dwarf_tsearch.h +125 -0
  94. data/ext/rdwarf/libdwarf/dwarf_tsearchhash.c +675 -0
  95. data/ext/rdwarf/libdwarf/dwarf_types.c +121 -0
  96. data/ext/rdwarf/libdwarf/dwarf_types.h +32 -0
  97. data/ext/rdwarf/libdwarf/dwarf_util.c +913 -0
  98. data/ext/rdwarf/libdwarf/dwarf_util.h +324 -0
  99. data/ext/rdwarf/libdwarf/dwarf_vars.c +125 -0
  100. data/ext/rdwarf/libdwarf/dwarf_vars.h +29 -0
  101. data/ext/rdwarf/libdwarf/dwarf_weaks.c +123 -0
  102. data/ext/rdwarf/libdwarf/dwarf_weaks.h +29 -0
  103. data/ext/rdwarf/libdwarf/dwarf_xu_index.c +579 -0
  104. data/ext/rdwarf/libdwarf/dwarf_xu_index.h +68 -0
  105. data/ext/rdwarf/libdwarf/dwgetopt.c +181 -0
  106. data/ext/rdwarf/libdwarf/dwgetopt.h +51 -0
  107. data/ext/rdwarf/libdwarf/gennames.c +531 -0
  108. data/ext/rdwarf/libdwarf/install.sh +119 -0
  109. data/ext/rdwarf/libdwarf/libdwarf.h.in +3746 -0
  110. data/ext/rdwarf/libdwarf/libdwarf2.1.mm +9805 -0
  111. data/ext/rdwarf/libdwarf/libdwarf2.1.pdf +0 -0
  112. data/ext/rdwarf/libdwarf/libdwarf2p.1.mm +2807 -0
  113. data/ext/rdwarf/libdwarf/libdwarf2p.1.pdf +0 -0
  114. data/ext/rdwarf/libdwarf/libdwarfdefs.h +81 -0
  115. data/ext/rdwarf/libdwarf/malloc_check.c +327 -0
  116. data/ext/rdwarf/libdwarf/malloc_check.h +52 -0
  117. data/ext/rdwarf/libdwarf/mips_extensions.mm +1266 -0
  118. data/ext/rdwarf/libdwarf/mips_extensions.pdf +0 -0
  119. data/ext/rdwarf/libdwarf/pro_alloc.c +179 -0
  120. data/ext/rdwarf/libdwarf/pro_alloc.h +33 -0
  121. data/ext/rdwarf/libdwarf/pro_arange.c +310 -0
  122. data/ext/rdwarf/libdwarf/pro_arange.h +51 -0
  123. data/ext/rdwarf/libdwarf/pro_die.c +431 -0
  124. data/ext/rdwarf/libdwarf/pro_die.h +59 -0
  125. data/ext/rdwarf/libdwarf/pro_encode_nm.c +108 -0
  126. data/ext/rdwarf/libdwarf/pro_encode_nm.h +39 -0
  127. data/ext/rdwarf/libdwarf/pro_error.c +96 -0
  128. data/ext/rdwarf/libdwarf/pro_error.h +43 -0
  129. data/ext/rdwarf/libdwarf/pro_expr.c +575 -0
  130. data/ext/rdwarf/libdwarf/pro_expr.h +36 -0
  131. data/ext/rdwarf/libdwarf/pro_finish.c +45 -0
  132. data/ext/rdwarf/libdwarf/pro_forms.c +1271 -0
  133. data/ext/rdwarf/libdwarf/pro_frame.c +572 -0
  134. data/ext/rdwarf/libdwarf/pro_frame.h +120 -0
  135. data/ext/rdwarf/libdwarf/pro_funcs.c +50 -0
  136. data/ext/rdwarf/libdwarf/pro_incl.h +91 -0
  137. data/ext/rdwarf/libdwarf/pro_init.c +327 -0
  138. data/ext/rdwarf/libdwarf/pro_line.c +373 -0
  139. data/ext/rdwarf/libdwarf/pro_line.h +112 -0
  140. data/ext/rdwarf/libdwarf/pro_macinfo.c +457 -0
  141. data/ext/rdwarf/libdwarf/pro_macinfo.h +31 -0
  142. data/ext/rdwarf/libdwarf/pro_opaque.h +513 -0
  143. data/ext/rdwarf/libdwarf/pro_pubnames.c +60 -0
  144. data/ext/rdwarf/libdwarf/pro_reloc.c +253 -0
  145. data/ext/rdwarf/libdwarf/pro_reloc.h +38 -0
  146. data/ext/rdwarf/libdwarf/pro_reloc_stream.c +256 -0
  147. data/ext/rdwarf/libdwarf/pro_reloc_stream.h +52 -0
  148. data/ext/rdwarf/libdwarf/pro_reloc_symbolic.c +245 -0
  149. data/ext/rdwarf/libdwarf/pro_reloc_symbolic.h +45 -0
  150. data/ext/rdwarf/libdwarf/pro_section.c +2233 -0
  151. data/ext/rdwarf/libdwarf/pro_section.h +100 -0
  152. data/ext/rdwarf/libdwarf/pro_types.c +274 -0
  153. data/ext/rdwarf/libdwarf/pro_types.h +34 -0
  154. data/ext/rdwarf/libdwarf/pro_util.h +38 -0
  155. data/ext/rdwarf/libdwarf/pro_vars.c +52 -0
  156. data/ext/rdwarf/libdwarf/pro_weaks.c +51 -0
  157. data/ext/rdwarf/rdwarf.c +765 -0
  158. data/ext/rdwarf/rdwarf.h +52 -0
  159. data/ext/rdwarf/rdwarf_names_gen.rb +109 -0
  160. data/lib/rdwarf.rb +181 -0
  161. data/lib/rdwarf/version.rb +3 -0
  162. data/rdwarf.gemspec +30 -0
  163. metadata +251 -0
@@ -0,0 +1,217 @@
1
+ 2007-12-09 DavidAnderson <davea42@earthlink.net>
2
+ * dwarf_sort_line.c dwarf_print_lines.c darf_frame.c: Forgot
3
+ to commit yesterday.
4
+ Today's commit includes renaming _dwarf_fde_section_offset
5
+ _dwarf_cie_section_offset, _dwarf_print_lines, _dwarf_ld_sort_lines
6
+ to dwarf_* name while retaining support for the now obsolete
7
+ _dwarf_* form.
8
+ 2007-12-08 DavidAnderson <davea42@earthlink.net>
9
+ * config.h.in, configure.in: Latest linux libelf.h requires
10
+ _GNU_SOURCE to get off64_t defined so dwarfdump compiles.
11
+ Only define _GNU_SOURCE if libelf.h defines off64_t.
12
+ Regenerated configure.
13
+ * config.guess, config.sub: Updated to 2.61
14
+ * acconfig.h: Deleted, removing autoconf complaint.
15
+ 2007-11-14 David Anderson <davea42@earthlink.net>
16
+ * dwarf_frame2.c (gnu_aug_encodings): Now allows 'S' augmentation
17
+ character in eh_frame.
18
+ 2007-10-16 David Anderson <davea42@earthlink.net>
19
+ * dwarf_alloc.c: Reformat a comment.
20
+ * dwarf_die_deliv.c (dwarf_siblingof): When there is no trailing
21
+ null-DIE in the section, ensure we don't test the contents
22
+ of a byte past section end.
23
+ * dwarf_frame.c: Changed spelling of a local variable
24
+ so it is easier to grep for and to read.
25
+ * dwarf_macro.c (free_macro_stack): Was free()ing memory that
26
+ _dwarf_get_alloc() had supplied, which could lead to core dump.
27
+ Fixed potential memory leaks (said leaks only possible with an
28
+ error in the macro data, not with valid macro section
29
+ data).
30
+ 2007-10-15 David Anderson <davea42@earthlink.net>
31
+ * dwarf_alloc.c: The code supporting the special build
32
+ flag DWARF_SIMPLE_MALLOC
33
+ was broken and could coredump libdwarf
34
+ (which did not affect normal use of libdwarf).
35
+ * dwarf_opaque.h: Remove the field de_simple_malloc_current
36
+ as it is no longer used.
37
+
38
+ 2007-09-04 David Anderson <davea42@earthlink.net>
39
+ * pro_forms.c: Add commentary relating to the
40
+ recent DWARF4 DW_AT_high_pc change.
41
+ Correct FSF address.
42
+ * libdwarf2p.1.mm: Document dwarf_add_AT_dataref()
43
+ and dwarf_add_AT_ref_address().
44
+ * libdwarf2p.1.pdf: Regenerate.
45
+ * dwarf.h: Update FSF address.
46
+ * dwarf_opaque.h: Add DWARF4 entry (version stamp).
47
+ Update FSF address.
48
+ * dwarf_die_deliv.c: Add check for .debug_info version 4
49
+ (version stamp). Update FSF address.
50
+ * libdwarf.h pro_macinfo.h pro_line.h dwarf_incl.h
51
+ pro_alloc.h pro_section.h libdwarfdefs.h pro_util.h
52
+ dwarf_vars.h dwarf_funcs.h pro_error.h dwarf_alloc.h pro_arange.h
53
+ dwarf_arange.h pro_die.h dwarf_global.h pro_expr.h
54
+ pro_reloc_stream.h pro_incl.h pro_encode_nm.h
55
+ dwarf_line.h pro_frame.h pro_opaque.h dwarf_error.h
56
+ dwarf_base_types.h dwarf_abbrev.h pro_types.h pro_reloc_symbolic.h
57
+ dwarf_weaks.h dwarf_util.h dwarf_loc.h malloc_check.h
58
+ dwarf_die_deliv.h acconfig.h dwarf_frame.h dwarf_macro.h
59
+ pro_reloc.h dwarf_types.h
60
+ pro_funcs.c Makefile.in pro_forms.c pro_line.c
61
+ dwarf_print_lines.c pro_alloc.c pro_init.c dwarf_addr_finder.c
62
+ pro_section.c dwarf_form.c dwarf_query.c dwarf_vars.c
63
+ dwarf_pubtypes.c dwarf_frame3.c dwarf_funcs.c pro_error.c
64
+ pro_arange.c dwarf_alloc.c dwarf_arange.c pro_die.c
65
+ dwarf_sort_line.c dwarf_global.c dwarf_init_finish.c pro_weaks.c
66
+ pro_pubnames.c pro_expr.c pro_reloc_stream.c pro_finish.c
67
+ pro_encode_nm.c dwarf_line.c pro_frame.c dwarf_error.c
68
+ dwarf_abbrev.c pro_types.c dwarf_leb.c pro_reloc_symbolic.c
69
+ dwarf_string.c pro_vars.c dwarf_line2.c dwarf_weaks.c
70
+ dwarf_frame2.c dwarf_util.c dwarf_loc.c LIBDWARFCOPYRIGHT
71
+ malloc_check.c dwarf_die_deliv.c dwarf_frame.c dwarf_stubs.c
72
+ dwarf_macro.c pro_reloc.c dwarf_types.c pro_macinfo.c:
73
+ Update FSF address.
74
+ 2007-07-26 David Anderson <davea42@earthlink.net>
75
+ * pro_frame.c: Added commentary about some missing DWARF3 support.
76
+ * dwarf_srclines_dealloc.c: File unused, now deleted.
77
+ 2007-07-04 David Anderson <davea42@earthlink.net>
78
+ * libdwarf.h: dwarf_get_loclist_entry() is implemented,
79
+ removed the erroneous 'unimplemented' comment.
80
+ * libdwarf2.1.mm: Improved the dwarf_get_loclist_entry()
81
+ documentation.
82
+ * libdwarf2.1.pdf: regenerated
83
+ * dwarf_loclist_entry.c: Removed from distribution, the
84
+ source has nothing of interest.
85
+
86
+ 2007-07-03 David Anderson <davea42@earthlink.net>
87
+ * libdwarf.h: Add declaration of dwarf_loclist_from_expr();
88
+ * dwarf_loc.c: Implement dwarf_loclist_from_expr() and add
89
+ sign-extension macro calls to case DW_OP_const4s numbers.
90
+ Removed unused local variables.
91
+ * dwarf_form.c: Removed unused local variables.
92
+ * libdwarf2.1.mm: Document dwarf_loclist_from_expr().
93
+ * libdwarf2.1.pdf: Regenerated.
94
+ 2007-07-01 David Anderson <davea42@earthlink.net>
95
+ * dwarf_frame2.c: Add commentary.
96
+ * dwarf_frame.c: Add in block_len for DW_CFA_val_expression
97
+ so libdwarf does not get confused by this frame expression
98
+ operator. Thanks to Cristian Vlasceanu for providing
99
+ a test case.
100
+ 2007-06-29 David Anderson <davea42@earthlink.net>
101
+ * README: added a note that a few warnings about conversions
102
+ from pointer to integer are normal at libdwarf compile time.
103
+ 2007-05-25 David Anderson <davea42@earthlink.net>
104
+ * dwarf_frame2.c (_dwarf_get_fde_list_internal):
105
+ Correct cie-list-creation so it adds to the tail of the list.
106
+ gcc 4.1.2 generates cie-use in an order the code did
107
+ not properly handle.
108
+ 2007-05-08 David Anderson <davea42@earthlink.net>
109
+ * Makefile.in: Now generates pdf files.
110
+ * mips_extensions.mm: The only changes were to eliminate
111
+ unsupported macro (.PM) and to try to get correct output
112
+ from groff. No technical content change intended.
113
+ The pdf/postscript output remains a little odd though.
114
+ * libdwarf2.1.mm: Remove troff comment line.
115
+ 2007-04-18 Chris Quenelle <chris.quenelle@sun.com>
116
+ * dwarf_addr_finder.c: repaired comment
117
+ * dwarf_form.c: add support for DW_AT_SUN_func_offsets
118
+ * pro_alloc.c: add memory block tracking to find and fix
119
+ lingering allocations. This is more important for very large
120
+ and intensive compiles.
121
+ * pro_die.c: Implement "markers" which are a generic way to
122
+ do things like relocations. You can set a marker on any
123
+ die, and when dwarf is produced in binary form, you get back
124
+ a list of your markers with the offset of each one in the binary
125
+ output. This is used by the Sun compilers to implement die
126
+ references that span compile unit blocks. (I may remove this,
127
+ it might be unused code related to partial_units and comdat
128
+ support)
129
+ * pro_die.c: Also check for loops in the die relationships so
130
+ that if you add a child twice, or other errors, you won't get
131
+ an infinite loop or a crash. Also start passing a DBG structure
132
+ to all allocation calls to help with memory block tracking.
133
+ * pro_expr.c: Add a public function to "reset" an expr. This
134
+ allows the same expr object to be reused over and over to save
135
+ memory if you're creating many many expressions for a location list.
136
+ * pro_finish.c: Free any left over blocks when the user calls
137
+ dwarf_producer_finish.
138
+ * pro_forms.c: More support for compressed integer blocks. Modify
139
+ error diagnostics so that user-defined attributes can be any type.
140
+ Add support for dwarf_add_AT_ref_address which is just like
141
+ dwarf_add_AT_address, only it produces a DW_FORM_ref_addr instead
142
+ of DW_FORM_addr. This is needed for cross-CU die pointers.
143
+ * pro_incl.h: add macros to control the spelling of relocation types.
144
+ * pro_init.c: use new macros to control reloc types
145
+ * pro_line.h: correct minimum instruction length on x86
146
+ * pro_opaque.h: add support for markers (see above) and also ability
147
+ have libdwarf tell the caller where the string constants are so
148
+ that they can be recorded as strings in case the binary output of libdwarf
149
+ needs to be converted back into assembly. That's what
150
+ Dwarf_P_Per_Sect_String_Attrs is about.
151
+ Remove de_mem_list as it is never used.
152
+ * pro_reloc_stream.c: repair prototype and comment for
153
+ _dwarf_pro_reloc_name_stream64, and use relocation type macros.
154
+ * pro_section.c: support for markers (see above) and for tracking
155
+ inline string attributes. Add code to sort the attributes so that
156
+ abbreviation table entries will be reduced. Change treatment of
157
+ DW_FORM_ref_addr to be more correct. Some support for packing
158
+ in the middle of sections, this will probably be removed.
159
+ Also pass DBg structure to more allocations.
160
+ * pro_util.h: relocation type values can't be zero.
161
+ 2007-04-10 David Anderson <davea42@earthlink.net
162
+ * dwarf_print_lines.c pro_section.c dwarf_query.c
163
+ dwarf_alloc.c dwarf_arange.c dwarf_sort_line.c
164
+ dwarf_global.c dwarf_line.c dwarf_abbrev.c
165
+ dwarf_frame2.c dwarf_util.c dwarf_loc.c dwarf_util.h
166
+ dwarf_die_deliv.c dwarf_frame.c dwarf_macro.c: Additions
167
+ to source for year 2007 now fit in with pre-existing
168
+ copyright wording. Effectively no change.
169
+ * dwarf_srclines_dealloc.c: Now has the (always-intended) SGI
170
+ LGPL copyright wording.
171
+ 2007-04-09 David Anderson <davea42@earthlink.net
172
+ * dwarf_error.h: Add DW_DLE_LINK_LOOP error code (Sun).
173
+ * libdwarf.h: Add DW_DLE_LINK_LOOP error code (Sun).
174
+ * dwarf.h: Incorporate Sun extensions. Thanks to
175
+ Chris Quenelle at Sun Microsystems.
176
+ 2007-04-06 David Anderson <davea42@earthlink.net
177
+ * dwarf_sort_line.c (_dwarf_update_line_sec): initialize
178
+ Dwarf_Debug_s struct. Thanks to Chris Quenelle of Sun Microsystems.
179
+ Also initialize other local variables.
180
+ 2007-04-02 David Anderson <davea42@earthlink.net
181
+ * dwarf_form.c (dwarf_formsdata, dwarf_formudata): Use
182
+ Dwarf_sfixed in dwarf_formsdata, document need for casts,
183
+ Use Dwarf_Signed as type for READ_UNALIGNED macro use.
184
+ The only real correction here is for a 64bit long compiled
185
+ libdwarf reading 32bit dwarf_formsdata FORM_data4.
186
+ * dwarf_base_types.h: Now Dwarf_sfixed64 and Dwarf_ufixed64
187
+ are properly declared (so they are usable).
188
+ 2007-03-11 David Anderson <davea42@earthlink.net
189
+ * Makefile.in: use groff to produce postscript.
190
+ * libdwarf2.1.mm libdwarf2.1.ps libdwarf2p.1.mm
191
+ libdwarf2p.1.ps: Clean up the introduction and history.
192
+ Add a non-restrictive copyright notice.
193
+ 2007-02-23 David Anderson <davea42@earthlink.net
194
+ * dwarf_util.h: now the macros use do{} while(0)
195
+ * pro_forms.c dwarf_print_lines.c pro_section.c dwarf_query.c
196
+ dwarf_arange.c dwarf_sort_line.c dwarf_global.c dwarf_line.c
197
+ dwarf_abbrev.c dwarf_frame2.c dwarf_util.c dwarf_loc.c
198
+ dwarf_die_deliv.c dwarf_frame.c: Now have ;
199
+ after all dwarf_util.h macros. Also added local variable
200
+ initializations (compiler noticed).
201
+ * dwarf_macro.c: was missing include of <stdlib.h> for free()
202
+ declaration.
203
+ * dwarf_print_lines.c pro_section.c dwarf_query.c dwarf_alloc.c
204
+ dwarf_arange.c dwarf_sort_line.c dwarf_global.c dwarf_line.c
205
+ dwarf_abbrev.c dwarf_srclines_dealloc.c dwarf_frame2.c
206
+ dwarf_util.c dwarf_loc.c dwarf_die_deliv.c dwarf_frame.c
207
+ dwarf_macro.c: indent run with standard libdwarf options.
208
+
209
+ 2007-02-20 David Anderson <davea42@earthlink.net
210
+ * dwarf_macro.c (dwarf_get_macro_details): Now call
211
+ dwarf_free_macro_stack() at every return so no data
212
+ is leaked and there is no longer any global data
213
+ (restoring thread safety).
214
+ 2007-02-09 David Anderson <davea42@earthlink.net
215
+ * dwarf_line.c (dwarf_srclines): Added in calls
216
+ to dwarf_free_line_table_prefix() which were omitted
217
+ by accident. Thanks to Cristian Vlasceanu for noticing.
@@ -0,0 +1,263 @@
1
+ 2008-12-29 DavidAnderson <davea42@earthlink.net>
2
+ * libdwarf.h: Add support for .debug_ranges with
3
+ dwarf_get_ranges() and dwarf_ranges_dealloc().
4
+ * dwarf_init_finish.c: Add support for .debug_ranges.
5
+ * dwarf_base_types.h: Add support for .debug_ranges functions.
6
+ * dwarf_alloc.c, dwarf_alloc.h: Add support for .debug_ranges
7
+ alloc/dealloc.
8
+ * dwarf_opaque.h: Add support for .debug_ranges.
9
+ * libdwarf2.1.mm: Documented dwarf_get_ranges() and
10
+ dwarf_ranges_dealloc() (rev 1.72).
11
+ * libdwarf2.1.pdf: Regenerated.
12
+ 2008-12-09 DavidAnderson <davea42@earthlink.net>
13
+ * dwarf_alloc.c: Remove useless comments and
14
+ tweak a few comments.
15
+ 2008-12-08 DavidAnderson <davea42@earthlink.net>
16
+ * dwarf_opaque.h: Add di_abbrev_code field to record
17
+ a DIE abbreviation value so consumers can report it.
18
+ * libdwarf.h: Add dwarf_die_abbrev_code() interface.
19
+ * dwarf_query.c: Add dwarf_die_abbrev_code() interface.
20
+ * dwarf_die_deliv.c: Set di_abbrev_code for consumers.
21
+ * libdwarf2.1.mm: Documented dwarf_die_abbrev_code().
22
+ * libdwarf2.1.pdf: Regenerated.
23
+ * pro_util.h: Removed gratuitous tabs. Used a space instead.
24
+ 2008-12-07 DavidAnderson <davea42@earthlink.net>
25
+ * dwarf.h: Entered DWARF4 defines known so far.
26
+ * dwarf_opaque.h: Updated dwarf 4 section-version comment
27
+ with the latest info.
28
+ 2008-12-07 DavidAnderson <davea42@earthlink.net>
29
+ * dwarf_original_elf_init.c: Delete unused local variables.
30
+ * pro_forms.c: Delete unused local variables and initialize
31
+ local variables at definition.
32
+ * dwarf_pubtypes.c, dwarf_line.c: Delete accidental
33
+ duplicated /* comment-start.
34
+ * malloc_check.c: In the 'do nothing' case, create
35
+ an extern declaration to eliminate a compiler warning.
36
+ 2008-11-19 DavidAnderson <davea42@earthlink.net>
37
+ * dwarf_die_deliv.c: Handle the case where DW_AT_sibling
38
+ uses DW_FORM_ref_addr.
39
+ * dwarf_util.c: Add a comment about DW_FORM_ref_addr.
40
+ * dwarf_opaque.h: Add a comment about CU fields,
41
+ comment out an unused CU header field.
42
+ * dwarf_query.c: Added dwarf_die_CU_offset_range()
43
+ so dwarfdump can check for additional errors.
44
+ * dwarf_form.c: Clarifying a comment.
45
+ * dwarf_print_lines.c: Add additional print detail on
46
+ line table headers (used by dwarfdump).
47
+ * libdwarf2.1.mm: Documenting the new function
48
+ dwarf_die_CU_offset_range().
49
+ * libdwarf2.1.pdf: Regenerated.
50
+ * libdwarf.h: Added dwarf_die_CU_offset_range() interface
51
+ declaration.
52
+ 2008-10-13 DavidAnderson <davea42@earthlink.net>
53
+ * dwarf_frame2.c: Removed last use of DW_FRAME_LAST_REG_NUM:
54
+ use dbg->de_frame_reg_rules_entry_count instead.
55
+ 2008-09-30 DavidAnderson <davea42@earthlink.net>
56
+ * dwarf_print_lines.c: Print corrected warning
57
+ about bogus prologue length.
58
+ * dwarf_line.c: Work around bogus prologue length
59
+ compiler bug.
60
+ * dwarf_line.h: Rename arguments.
61
+ 2008-09-29 DavidAnderson <davea42@earthlink.net>
62
+ * libdwarf2.1.mm: Documented requirement that
63
+ dwarf_get_fde_n() dwarf_get_fde_at_pc() pass a
64
+ pointer to an fde table that contains at least 1 entry.
65
+ * libdwarf2.1.pdf: regenerated.
66
+ * dwarf_opaque.h: Add new fields for cie/fde specific
67
+ fields for eh.
68
+ * dwarf_frame2.c: Initialize the new Dwarf_debug and
69
+ Dwarf_Fde fields.
70
+ * dwarf_frame.c: Access the new Dwarf_Fde fields.
71
+ * dwarf_frame.h: Define a new Dwarf_Fde field so we
72
+ keep eh and non-eh distinct.
73
+
74
+ 2008-09-29 DavidAnderson <davea42@earthlink.net>
75
+ * All .c files: Mechanically removed tab characters with
76
+ the expand tool.
77
+ 2008-09-29 DavidAnderson <davea42@earthlink.net>
78
+ * libdwarf.h: DW_DLE_LINE_SET_ADDR_ERROR no longer used.
79
+ The tests which generated it were bogus.
80
+ * dwarf_print_lines.c: Print a warning if there are any
81
+ apparently wasted bytes after the line prologue and before
82
+ the line table instructions. Match the new prologue reading
83
+ function prototype.
84
+ * dwarf_sort_line.c: Match the new prologue reading function
85
+ prototype.
86
+ * dwarf_line.c: Modify the prologue reading function so
87
+ it correctly finds the beginning of instructions even
88
+ when there are 'wasted' bytes after the prologue.
89
+ Drop bogus tests for minimum-instruction-size
90
+ matching the ABI pointer size. Removing the tests removed
91
+ all uses of DW_DLE_LINE_SET_ADDR_ERROR.
92
+ * dwarf_line.h: Modify the prototype for the prologue reading
93
+ function so it is possible for a caller to know about the
94
+ possibly wasted bytes after a prologue.
95
+ 2008-09-02 DavidAnderson <davea42@earthlink.net>
96
+ * dwarf_init_finish.c (_dwarf_setup): Delete unused local
97
+ variable 'section_error'.
98
+ 2008-08-14 DavidAnderson <davea42@earthlink.net>
99
+ * libdwarf2p.1.mm: Make it clearer that dwarf_get_pubnames, dwarf_get_varnames,
100
+ etc return a result across all compilation units (an entire section),
101
+ not just for a single compilation unit. Document version 1.68.
102
+ * libdwarf2p.1.pdf: Regenerated.
103
+ 2008-08-08 DavidAnderson <davea42@earthlink.net>
104
+ * libdwarf2p.1.mm: Removed some long time
105
+ spelling mistakes: no technical change in content.
106
+ Document version 1.67.
107
+ * libdwarf2p.1.pdf: Regenerated.
108
+ 2008-08-05 DavidAnderson <davea42@earthlink.net>
109
+ * libdwarf.h, dwarf_error.c: DW_DLA_PUBTYPE_CONTEXT was a mistake,
110
+ DW_DLE_PUBTYPE_CONTEXT was intended and is now the spelling (neither
111
+ is used).
112
+ * dwarf_pubtypes.c dwarf_vars.c dwarf_funcs.c dwarf_global.c dwarf_weaks.c:
113
+ tabs removed and previous strange formatting generated by a tool
114
+ removed (4 space indent per level now present).
115
+
116
+ 2008-08-05 DavidAnderson <davea42@earthlink.net>
117
+ * libdwarf2.1.mm: There were numerous places the apostrophe
118
+ was used incorrectly, thru is now spelled through,
119
+ and a few other small typographical errors were corrected.
120
+ The document revision id printed is now 1.67.
121
+ There is no technical change in content.
122
+ * libdwarf2.1.pdf: Regenerated.
123
+ 2008-06-17 DavidAnderson <davea42@earthlink.net>
124
+ * libdwarf.h: Add DW_DLE_STRP_OFFSET_BAD error code.
125
+ * dwarf_form.c: Add runtime check for strp offset.
126
+ * dwarf_error.c: Add DW_DLE_STRP_OFFSET_BAD error code string.
127
+ * dwarf_init_finish.c, dwarf_opaque.h, dwarf_elf_access.h: Remove
128
+ CR characters that crept in.
129
+ 2008-06-13 DavidAnderson <davea42@earthlink.net>
130
+ * libdwarf.h: Remove __SGI_FAST_LIBELF
131
+ dwarf_original_elf_init.c: Remove __SGI_FAST_LIBELF
132
+ and fix some indentation botches.
133
+ * dwarf_init_finish.c: Fix typo in variable name introduced
134
+ a few days ago.
135
+ * dwarf_elf_access.c: Remove __SGI_FAST_LIBELF
136
+ and fix some indentation botches.
137
+
138
+ 2008-05-20 DavidAnderson <davea42@earthlink.net>
139
+ * dwarf_init_finish.c: Expand tabs to spaces.
140
+ 2008-05-20 DavidAnderson <davea42@earthlink.net>
141
+ * dwarf_init_finish.c(dwarf_object_init): When there is no
142
+ DWARF information return DW_DLV_NO_ENTRY gracefully.
143
+ Thanks to Carlos Alberto Enciso for pointing out
144
+ the bug.
145
+ 2008-04-12 DavidAnderson <davea42@earthlink.net>
146
+ * pro_section.c: Initialize local variables to zero.
147
+ Change leading tabs to spaces.
148
+ * pro_reloc_stream.c: Initialize local variables to zero.
149
+ Change leading tabs to spaces.
150
+ * pro_reloc.c: Initialize local variables to zero.
151
+ Change leading tabs to spaces.
152
+ 2008-04-04 DavidAnderson <davea42@earthlink.net>
153
+ * dwarf_base_types.h: Removed unused macro definition.
154
+ * dwarf_util.c: Altered abbreviations hash table for a small
155
+ performance improvement and space saving.
156
+ * dwarf_util.h: Changed declaration for space saving in dwarf
157
+ abbreviations table.
158
+ 2008-04-04 DavidAnderson <davea42@earthlink.net>
159
+ * libdwarf.h: A trivial change to make a declaration look better.
160
+ * dwarf_abbrev.h: We record tags in more than 16 bits now just in case
161
+ we encounter such a thing (increased ab_tag field size), though
162
+ we should not find such.
163
+ * dwarf_abbrev.c: Adding a comment about the dwarf TAG value.
164
+ * dwarf_util.c: Initialize local variables at declaration for safety.
165
+ Removed truncation of some values: internally record more bits.
166
+ Rewrote handling of the abbrev table as the old one did not scale
167
+ to large numbers of abbreviations (things got very slow).
168
+ * dwarf_util.h: Now has a larger field size in the argument to
169
+ _dwarf_get_abbrev_for_code (not quite necessary but not harmful).
170
+ * dwarf_die_deliv.c: Initializing local variables at declaration and
171
+ removing truncation of bits from some uleb values.
172
+ * dwarf_die_deliv.h: Increased size of ab_code field.
173
+ * dwarf_opaque.h: Added a comment about abbreviations.
174
+ * dwarf_base_types.h: Revised to match addition of new
175
+ allocation table entry.
176
+ * dwarf_alloc.h: Document macro definitions and increase one to
177
+ match new table size.
178
+ * dwarf_alloc.c: Arrange handling of new DW_DLA_HASH_TABLE_ENTRY
179
+ (most of the work done in dwarf_util.c).
180
+ 2008-02-27 DavidAnderson <davea42@earthlink.net>
181
+ * libdwarf.h: Fixed minor typo in latest libdwarf.h that gcc did not
182
+ complain about. Noted by Josh Fuhs.
183
+ 2008-02-26 DavidAnderson <davea42@earthlink.net>
184
+ * dwarf_alloc.h: Add comment giving placement of DWARF_SIMPLE_MALLOC.
185
+ * pro_opaque.h: Remove de_access field, it is never used.
186
+ * libdwarf.h: Add new data structures to allow reading of
187
+ non-Elf object files.
188
+ * dwarf_original_elf_init.c: dwarf_init(), dwarf_elf_init()
189
+ moved here from dwarf_init_finish.c.
190
+ * Makefile.in: Build new source files dwarf_original_elf_init.c
191
+ and dwarf_elf_access.c.
192
+ * dwarf_init_finish.c: All dependencies on libelf and elf
193
+ have been removed.
194
+ * dwarf_opaque.h: The elf related info is removed and Dwarf_Debug_s
195
+ now contains a new structure (from libdwarf.h) to hide object
196
+ information.
197
+ * dwarf_elf_access.c: All the Elf-using code is now in this
198
+ source file and elf details are kept in a struct defined and
199
+ used here. Non-libelf and non-elf object access code would
200
+ write a new source file with their own details using this
201
+ as an example.
202
+ * dwarf_elf_access.h: Prototypes for calling between
203
+ dwarf_original_elf_init.c and dwarf_elf_access.c.
204
+ 2008-02-18 DavidAnderson <davea42@earthlink.net>
205
+ * libdwarf.h: Declare new object-access functions and structures.
206
+ * dwarf_original_elf_init.c: Traditional dwarf_init() and dwarf_elf_init()
207
+ are moved to this new source file.
208
+ * Makefile.in: Add new source files.
209
+ * dwarf_init_finish.c: Now uses the function pointers, not
210
+ libelf specific fields or ifdefs.
211
+ * pro_opaque.h: Remove de_access field, it is unused.
212
+ * dwarf_opaque.h: New fields for new object-access functions.
213
+ * dwarf_elf_access.c: New implementation details for elf access functions
214
+ moved here from dwarf_init_finish.c.
215
+ * dwarf_elf_access.h: New function interface so dwarf_elf_access.c
216
+ and dwarf_original_elf_init.c can communicate.
217
+ 2008-02-08 DavidAnderson <davea42@earthlink.net>
218
+ * dwarf_print_lines.c: Added commentary to clarify that
219
+ dwarf_print_lines() and _dwarf_print_lines are intentionally
220
+ identical. Initialized local variables so they are alll
221
+ visibly set to some sensible value.
222
+ 2008-02-07 DavidAnderson <davea42@earthlink.net>
223
+ * dwarf_frame.c (_dwarf_fde_section_offset): A typo
224
+ in the last release made this an infinite loop.
225
+ A one character change fixed it. Thanks to Carlos Alberto
226
+ Enciso for noticing the bug.
227
+ 2008-02-04 DavidAnderson <davea42@earthlink.net>
228
+ * dwarf_incl.h, pro_incl.h: Moved #include of dwarf.h before libdwarf.h
229
+ * pro_forms.c: Some newer attributes are now handled.
230
+ * dwarf_print_lines.c: Removed unused #include.
231
+ * dwarf_sort_line.c: Removed alloca use in favor of
232
+ malloc and removed the alloca #include.
233
+ * dwarf_line.c: Removed unused #include.
234
+ * dwarf_line2.c: Removed unused #include.
235
+
236
+ 2008-02-04 DavidAnderson <davea42@earthlink.net>
237
+ * libdwarf.h: Fix commentary mistakes.
238
+ 2008-02-02 DavidAnderson <davea42@earthlink.net>
239
+ * libdwarf.h: Add DW_DLC_OFFSET_SIZE_64 for run-time
240
+ selection of DWARF3 64bit extension producer offset generation.
241
+ * libdwarf2p.1.mm: Document DW_DLC_OFFSET_SIZE_64.
242
+ * pro_init.c (dwarf_producer_init): Now standard DWARF3 is the default.
243
+ * configure.in: Add --enable-dwarf-format-sgi-irix for those
244
+ wanting IRIX offset-style DWARF2. Add --enable-dwarf-format-strict-32bit
245
+ for those wanting strictly 32bit offsets.
246
+ Otherwise default to generating 64bit offsets from the producer code,
247
+ but allow the DWARF3 extended 64bit offsets if the flag
248
+ DW_DLC_OFFSET_SIZE_64 is turned on in the call to dwarf_producer_init().
249
+ * config.h.in: Provide undefs for the offset macros.
250
+
251
+ 2008-01-25 DavidAnderson <davea42@earthlink.net>
252
+ * pro_die.c: Changed leading tabs to spaces.
253
+ 2008-01-23 DavidAnderson <davea42@earthlink.net>
254
+ * pro_die.c: Using di_last_child field dwarf_die_link
255
+ goes from O(N) to O(1) in adding a child.
256
+ Thanks to Daniel Gollub for the suggestion.
257
+ An omission in linking left/right children is fixed.
258
+ Changed some leading TABs to spaces.
259
+ * pro_opaque.h: Add di_last_child field.
260
+ 2008-01-14 DavidAnderson <davea42@earthlink.net>
261
+ * libdwarf2p.1.mm: Added missing backslash to correct formatting
262
+ error. Thanks to Daniel Golub for pointing out the ommission.
263
+ * libdwarf2.p1.pdf: Regenerated.