rdwarf 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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.