rdwarf 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +16 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +28 -0
- data/README.md +39 -0
- data/Rakefile +8 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/ext/rdwarf/depend +5 -0
- data/ext/rdwarf/extconf.rb +29 -0
- data/ext/rdwarf/libdwarf/CHANGES +102 -0
- data/ext/rdwarf/libdwarf/CODINGSTYLE +71 -0
- data/ext/rdwarf/libdwarf/COPYING +28 -0
- data/ext/rdwarf/libdwarf/ChangeLog +619 -0
- data/ext/rdwarf/libdwarf/ChangeLog2006 +835 -0
- data/ext/rdwarf/libdwarf/ChangeLog2007 +217 -0
- data/ext/rdwarf/libdwarf/ChangeLog2008 +263 -0
- data/ext/rdwarf/libdwarf/ChangeLog2009 +348 -0
- data/ext/rdwarf/libdwarf/ChangeLog2010 +175 -0
- data/ext/rdwarf/libdwarf/ChangeLog2011 +297 -0
- data/ext/rdwarf/libdwarf/ChangeLog2012 +131 -0
- data/ext/rdwarf/libdwarf/ChangeLog2013 +238 -0
- data/ext/rdwarf/libdwarf/ChangeLog2014 +399 -0
- data/ext/rdwarf/libdwarf/LGPL.txt +504 -0
- data/ext/rdwarf/libdwarf/LIBDWARFCOPYRIGHT +40 -0
- data/ext/rdwarf/libdwarf/Makefile.in +220 -0
- data/ext/rdwarf/libdwarf/NEWS +535 -0
- data/ext/rdwarf/libdwarf/README +235 -0
- data/ext/rdwarf/libdwarf/checkexamples.c +1179 -0
- data/ext/rdwarf/libdwarf/cmplrs/dwarf_addr_finder.h +55 -0
- data/ext/rdwarf/libdwarf/common.c +62 -0
- data/ext/rdwarf/libdwarf/common.h +38 -0
- data/ext/rdwarf/libdwarf/config.h.in +146 -0
- data/ext/rdwarf/libdwarf/configure +5581 -0
- data/ext/rdwarf/libdwarf/configure.in +167 -0
- data/ext/rdwarf/libdwarf/dw-linetableheader.txt +39 -0
- data/ext/rdwarf/libdwarf/dwarf.h +1342 -0
- data/ext/rdwarf/libdwarf/dwarf_abbrev.c +291 -0
- data/ext/rdwarf/libdwarf/dwarf_abbrev.h +45 -0
- data/ext/rdwarf/libdwarf/dwarf_addr_finder.c +676 -0
- data/ext/rdwarf/libdwarf/dwarf_alloc.c +685 -0
- data/ext/rdwarf/libdwarf/dwarf_alloc.h +38 -0
- data/ext/rdwarf/libdwarf/dwarf_arange.c +595 -0
- data/ext/rdwarf/libdwarf/dwarf_arange.h +62 -0
- data/ext/rdwarf/libdwarf/dwarf_base_types.h +157 -0
- data/ext/rdwarf/libdwarf/dwarf_die_deliv.c +1802 -0
- data/ext/rdwarf/libdwarf/dwarf_die_deliv.h +46 -0
- data/ext/rdwarf/libdwarf/dwarf_elf_access.c +1348 -0
- data/ext/rdwarf/libdwarf/dwarf_elf_access.h +46 -0
- data/ext/rdwarf/libdwarf/dwarf_error.c +492 -0
- data/ext/rdwarf/libdwarf/dwarf_error.h +53 -0
- data/ext/rdwarf/libdwarf/dwarf_form.c +1302 -0
- data/ext/rdwarf/libdwarf/dwarf_frame.c +2454 -0
- data/ext/rdwarf/libdwarf/dwarf_frame.h +418 -0
- data/ext/rdwarf/libdwarf/dwarf_frame2.c +1533 -0
- data/ext/rdwarf/libdwarf/dwarf_frame3.c +282 -0
- data/ext/rdwarf/libdwarf/dwarf_funcs.c +123 -0
- data/ext/rdwarf/libdwarf/dwarf_funcs.h +33 -0
- data/ext/rdwarf/libdwarf/dwarf_gdbindex.c +520 -0
- data/ext/rdwarf/libdwarf/dwarf_gdbindex.h +97 -0
- data/ext/rdwarf/libdwarf/dwarf_global.c +612 -0
- data/ext/rdwarf/libdwarf/dwarf_global.h +117 -0
- data/ext/rdwarf/libdwarf/dwarf_harmless.c +228 -0
- data/ext/rdwarf/libdwarf/dwarf_harmless.h +31 -0
- data/ext/rdwarf/libdwarf/dwarf_incl.h +61 -0
- data/ext/rdwarf/libdwarf/dwarf_init_finish.c +1263 -0
- data/ext/rdwarf/libdwarf/dwarf_leb.c +159 -0
- data/ext/rdwarf/libdwarf/dwarf_line.c +1822 -0
- data/ext/rdwarf/libdwarf/dwarf_line.h +446 -0
- data/ext/rdwarf/libdwarf/dwarf_line2.c +98 -0
- data/ext/rdwarf/libdwarf/dwarf_line_table_reader_common.c +1583 -0
- data/ext/rdwarf/libdwarf/dwarf_loc.c +1525 -0
- data/ext/rdwarf/libdwarf/dwarf_loc.h +149 -0
- data/ext/rdwarf/libdwarf/dwarf_loc2.c +833 -0
- data/ext/rdwarf/libdwarf/dwarf_macro.c +479 -0
- data/ext/rdwarf/libdwarf/dwarf_macro.h +35 -0
- data/ext/rdwarf/libdwarf/dwarf_opaque.h +778 -0
- data/ext/rdwarf/libdwarf/dwarf_original_elf_init.c +219 -0
- data/ext/rdwarf/libdwarf/dwarf_print_lines.c +631 -0
- data/ext/rdwarf/libdwarf/dwarf_pubtypes.c +132 -0
- data/ext/rdwarf/libdwarf/dwarf_query.c +1594 -0
- data/ext/rdwarf/libdwarf/dwarf_ranges.c +194 -0
- data/ext/rdwarf/libdwarf/dwarf_reloc_arm.h +308 -0
- data/ext/rdwarf/libdwarf/dwarf_reloc_mips.h +117 -0
- data/ext/rdwarf/libdwarf/dwarf_reloc_ppc.h +242 -0
- data/ext/rdwarf/libdwarf/dwarf_reloc_ppc64.h +272 -0
- data/ext/rdwarf/libdwarf/dwarf_reloc_x86_64.h +127 -0
- data/ext/rdwarf/libdwarf/dwarf_sort_line.c +665 -0
- data/ext/rdwarf/libdwarf/dwarf_string.c +82 -0
- data/ext/rdwarf/libdwarf/dwarf_stubs.c +38 -0
- data/ext/rdwarf/libdwarf/dwarf_tied.c +423 -0
- data/ext/rdwarf/libdwarf/dwarf_tsearch.h +125 -0
- data/ext/rdwarf/libdwarf/dwarf_tsearchhash.c +675 -0
- data/ext/rdwarf/libdwarf/dwarf_types.c +121 -0
- data/ext/rdwarf/libdwarf/dwarf_types.h +32 -0
- data/ext/rdwarf/libdwarf/dwarf_util.c +913 -0
- data/ext/rdwarf/libdwarf/dwarf_util.h +324 -0
- data/ext/rdwarf/libdwarf/dwarf_vars.c +125 -0
- data/ext/rdwarf/libdwarf/dwarf_vars.h +29 -0
- data/ext/rdwarf/libdwarf/dwarf_weaks.c +123 -0
- data/ext/rdwarf/libdwarf/dwarf_weaks.h +29 -0
- data/ext/rdwarf/libdwarf/dwarf_xu_index.c +579 -0
- data/ext/rdwarf/libdwarf/dwarf_xu_index.h +68 -0
- data/ext/rdwarf/libdwarf/dwgetopt.c +181 -0
- data/ext/rdwarf/libdwarf/dwgetopt.h +51 -0
- data/ext/rdwarf/libdwarf/gennames.c +531 -0
- data/ext/rdwarf/libdwarf/install.sh +119 -0
- data/ext/rdwarf/libdwarf/libdwarf.h.in +3746 -0
- data/ext/rdwarf/libdwarf/libdwarf2.1.mm +9805 -0
- data/ext/rdwarf/libdwarf/libdwarf2.1.pdf +0 -0
- data/ext/rdwarf/libdwarf/libdwarf2p.1.mm +2807 -0
- data/ext/rdwarf/libdwarf/libdwarf2p.1.pdf +0 -0
- data/ext/rdwarf/libdwarf/libdwarfdefs.h +81 -0
- data/ext/rdwarf/libdwarf/malloc_check.c +327 -0
- data/ext/rdwarf/libdwarf/malloc_check.h +52 -0
- data/ext/rdwarf/libdwarf/mips_extensions.mm +1266 -0
- data/ext/rdwarf/libdwarf/mips_extensions.pdf +0 -0
- data/ext/rdwarf/libdwarf/pro_alloc.c +179 -0
- data/ext/rdwarf/libdwarf/pro_alloc.h +33 -0
- data/ext/rdwarf/libdwarf/pro_arange.c +310 -0
- data/ext/rdwarf/libdwarf/pro_arange.h +51 -0
- data/ext/rdwarf/libdwarf/pro_die.c +431 -0
- data/ext/rdwarf/libdwarf/pro_die.h +59 -0
- data/ext/rdwarf/libdwarf/pro_encode_nm.c +108 -0
- data/ext/rdwarf/libdwarf/pro_encode_nm.h +39 -0
- data/ext/rdwarf/libdwarf/pro_error.c +96 -0
- data/ext/rdwarf/libdwarf/pro_error.h +43 -0
- data/ext/rdwarf/libdwarf/pro_expr.c +575 -0
- data/ext/rdwarf/libdwarf/pro_expr.h +36 -0
- data/ext/rdwarf/libdwarf/pro_finish.c +45 -0
- data/ext/rdwarf/libdwarf/pro_forms.c +1271 -0
- data/ext/rdwarf/libdwarf/pro_frame.c +572 -0
- data/ext/rdwarf/libdwarf/pro_frame.h +120 -0
- data/ext/rdwarf/libdwarf/pro_funcs.c +50 -0
- data/ext/rdwarf/libdwarf/pro_incl.h +91 -0
- data/ext/rdwarf/libdwarf/pro_init.c +327 -0
- data/ext/rdwarf/libdwarf/pro_line.c +373 -0
- data/ext/rdwarf/libdwarf/pro_line.h +112 -0
- data/ext/rdwarf/libdwarf/pro_macinfo.c +457 -0
- data/ext/rdwarf/libdwarf/pro_macinfo.h +31 -0
- data/ext/rdwarf/libdwarf/pro_opaque.h +513 -0
- data/ext/rdwarf/libdwarf/pro_pubnames.c +60 -0
- data/ext/rdwarf/libdwarf/pro_reloc.c +253 -0
- data/ext/rdwarf/libdwarf/pro_reloc.h +38 -0
- data/ext/rdwarf/libdwarf/pro_reloc_stream.c +256 -0
- data/ext/rdwarf/libdwarf/pro_reloc_stream.h +52 -0
- data/ext/rdwarf/libdwarf/pro_reloc_symbolic.c +245 -0
- data/ext/rdwarf/libdwarf/pro_reloc_symbolic.h +45 -0
- data/ext/rdwarf/libdwarf/pro_section.c +2233 -0
- data/ext/rdwarf/libdwarf/pro_section.h +100 -0
- data/ext/rdwarf/libdwarf/pro_types.c +274 -0
- data/ext/rdwarf/libdwarf/pro_types.h +34 -0
- data/ext/rdwarf/libdwarf/pro_util.h +38 -0
- data/ext/rdwarf/libdwarf/pro_vars.c +52 -0
- data/ext/rdwarf/libdwarf/pro_weaks.c +51 -0
- data/ext/rdwarf/rdwarf.c +765 -0
- data/ext/rdwarf/rdwarf.h +52 -0
- data/ext/rdwarf/rdwarf_names_gen.rb +109 -0
- data/lib/rdwarf.rb +181 -0
- data/lib/rdwarf/version.rb +3 -0
- data/rdwarf.gemspec +30 -0
- metadata +251 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
======
|
4
|
+
Update January 31, 2015:
|
5
|
+
The SGI postal address and oss.sgi.com address
|
6
|
+
in the original copyright are no longer correct.
|
7
|
+
So the final 8 lines of the original copyright
|
8
|
+
have been deleted from the current copyright.
|
9
|
+
|
10
|
+
====== original copyright example.
|
11
|
+
Copyright (C) 2000,2004 Silicon Graphics, Inc. All Rights Reserved.
|
12
|
+
|
13
|
+
This program is free software; you can redistribute it and/or modify it
|
14
|
+
under the terms of version 2.1 of the GNU Lesser General Public License
|
15
|
+
as published by the Free Software Foundation.
|
16
|
+
|
17
|
+
This program is distributed in the hope that it would be useful, but
|
18
|
+
WITHOUT ANY WARRANTY; without even the implied warranty of
|
19
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
20
|
+
|
21
|
+
Further, this software is distributed without any warranty that it is
|
22
|
+
free of the rightful claim of any third person regarding infringement
|
23
|
+
or the like. Any license provided herein, whether implied or
|
24
|
+
otherwise, applies only to this software file. Patent licenses, if
|
25
|
+
any, provided herein do not apply to combinations of this program with
|
26
|
+
other software, or any other product whatsoever.
|
27
|
+
|
28
|
+
You should have received a copy of the GNU Lesser General Public
|
29
|
+
License along with this program; if not, write the Free Software
|
30
|
+
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
|
31
|
+
USA.
|
32
|
+
|
33
|
+
Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
|
34
|
+
Mountain View, CA 94043, or:
|
35
|
+
|
36
|
+
http://www.sgi.com
|
37
|
+
|
38
|
+
For further information regarding this notice, see:
|
39
|
+
|
40
|
+
http://oss.sgi.com/projects/GenInfo/NoticeExplan
|
@@ -0,0 +1,220 @@
|
|
1
|
+
#
|
2
|
+
#
|
3
|
+
# Copyright (C) 2000,2003,2004,2006 Silicon Graphics, Inc. All Rights Reserved.
|
4
|
+
# Portions Copyright (C) 2010 David B Anderson. All Rights Reserved.
|
5
|
+
#
|
6
|
+
# This program is free software; you can redistribute it and/or modify it
|
7
|
+
# under the terms of version 2.1 of the GNU Lesser General Public License
|
8
|
+
# as published by the Free Software Foundation.
|
9
|
+
#
|
10
|
+
# This program is distributed in the hope that it would be useful, but
|
11
|
+
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
13
|
+
#
|
14
|
+
# Further, this software is distributed without any warranty that it is
|
15
|
+
# free of the rightful claim of any third person regarding infringement
|
16
|
+
# or the like. Any license provided herein, whether implied or
|
17
|
+
# otherwise, applies only to this software file. Patent licenses, if
|
18
|
+
# any, provided herein do not apply to combinations of this program with
|
19
|
+
# other software, or any other product whatsoever.
|
20
|
+
#
|
21
|
+
# You should have received a copy of the GNU Lesser General Public
|
22
|
+
# License along with this program; if not, write the Free Software
|
23
|
+
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston MA 02110-1301,
|
24
|
+
# USA.
|
25
|
+
|
26
|
+
#
|
27
|
+
# Makefile for libdwarf
|
28
|
+
# This is made very simple so it should work with
|
29
|
+
# any 'make'.
|
30
|
+
#
|
31
|
+
|
32
|
+
srcdir = @srcdir@
|
33
|
+
VPATH = @srcdir@
|
34
|
+
|
35
|
+
prefix = @prefix@
|
36
|
+
exec_prefix = @exec_prefix@
|
37
|
+
bindir = $(exec_prefix)/bin
|
38
|
+
libdir = $(exec_prefix)/lib
|
39
|
+
|
40
|
+
INSTALL = @INSTALL@
|
41
|
+
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
42
|
+
INSTALL_DATA = @INSTALL_DATA@
|
43
|
+
SHELL = /bin/sh
|
44
|
+
CC = @CC@
|
45
|
+
AR = @AR@
|
46
|
+
# For use with BSD ar (MacOSX ar) edit the ARFLAGS to be -s
|
47
|
+
#ARFLAGS = @ARFLAGS@
|
48
|
+
RM = rm
|
49
|
+
RANLIB = @RANLIB@
|
50
|
+
DEFS = @DEFS@
|
51
|
+
LIBS = @LIBS@
|
52
|
+
INCLUDES = -I. -I$(srcdir)
|
53
|
+
dwfpic = @dwfpic@
|
54
|
+
dwfwall = @dwfwall@
|
55
|
+
CFLAGS = $(PREINCS) @CFLAGS@ $(INCLUDES) $(dwfpic) $(dwfwall) $(POSTINCS)
|
56
|
+
LDFLAGS = $(PRELIBS) @LDFLAGS@ $(POSTLIBS)
|
57
|
+
|
58
|
+
# These three files are only appropriate for SGI IRIX.
|
59
|
+
# There is no reason to think these are of any use to anyone else.
|
60
|
+
# As of October 2015 they are removed from OBJS
|
61
|
+
# dwarf_addr_finder.o
|
62
|
+
# dwarf_sort_line.o
|
63
|
+
# dwarf_line2.o
|
64
|
+
|
65
|
+
BUILD_BASE = .
|
66
|
+
|
67
|
+
OBJS= dwarf_abbrev.o \
|
68
|
+
dwarf_alloc.o \
|
69
|
+
dwarf_arange.o \
|
70
|
+
dwarf_die_deliv.o \
|
71
|
+
dwarf_elf_access.o \
|
72
|
+
dwarf_error.o \
|
73
|
+
dwarf_form.o \
|
74
|
+
dwarf_frame.o \
|
75
|
+
dwarf_frame2.o \
|
76
|
+
dwarf_frame3.o \
|
77
|
+
dwarf_funcs.o \
|
78
|
+
dwarf_gdbindex.o \
|
79
|
+
dwarf_global.o \
|
80
|
+
dwarf_harmless.o \
|
81
|
+
dwarf_init_finish.o \
|
82
|
+
dwarf_leb.o \
|
83
|
+
dwarf_line.o \
|
84
|
+
dwarf_loc.o \
|
85
|
+
dwarf_macro.o \
|
86
|
+
dwarf_original_elf_init.o \
|
87
|
+
dwarf_pubtypes.o \
|
88
|
+
dwarf_query.o \
|
89
|
+
dwarf_ranges.o \
|
90
|
+
dwarf_string.o \
|
91
|
+
dwarf_stubs.o \
|
92
|
+
dwarf_tied.o \
|
93
|
+
dwarf_tsearchhash.o \
|
94
|
+
dwarf_types.o \
|
95
|
+
dwarf_util.o \
|
96
|
+
dwarf_vars.o \
|
97
|
+
dwarf_weaks.o \
|
98
|
+
dwarf_xu_index.o \
|
99
|
+
dwarf_print_lines.o \
|
100
|
+
malloc_check.o \
|
101
|
+
pro_alloc.o \
|
102
|
+
pro_arange.o \
|
103
|
+
pro_die.o \
|
104
|
+
pro_encode_nm.o \
|
105
|
+
pro_error.o \
|
106
|
+
pro_expr.o \
|
107
|
+
pro_finish.o \
|
108
|
+
pro_forms.o \
|
109
|
+
pro_funcs.o \
|
110
|
+
pro_frame.o \
|
111
|
+
pro_init.o \
|
112
|
+
pro_line.o \
|
113
|
+
pro_reloc.o \
|
114
|
+
pro_reloc_stream.o \
|
115
|
+
pro_reloc_symbolic.o \
|
116
|
+
pro_pubnames.o \
|
117
|
+
pro_section.o \
|
118
|
+
pro_types.o \
|
119
|
+
pro_vars.o \
|
120
|
+
pro_macinfo.o \
|
121
|
+
pro_weaks.o
|
122
|
+
|
123
|
+
|
124
|
+
all: @build_shared@ @build_nonshared@
|
125
|
+
|
126
|
+
libdwarf.a: dwarf_names.h dwarf_names.c $(OBJS) dwarf_names.o
|
127
|
+
$(AR) $(ARFLAGS) $@ $(OBJS) dwarf_names.o > ar-output-temp
|
128
|
+
|
129
|
+
libdwarf.so: dwarf_names.h dwarf_names.c $(OBJS) dwarf_names.o
|
130
|
+
$(CC) $(CFLAGS) -shared $(OBJS) dwarf_names.o -o $@
|
131
|
+
|
132
|
+
none:
|
133
|
+
echo "do nothing " $@
|
134
|
+
dwgetopt.o: $(srcdir)/dwgetopt.c $(srcdir)/dwgetopt.h
|
135
|
+
$(CC) $(CFLAGS) -c $(srcdir)/dwgetopt.c
|
136
|
+
dwarf_loc.o: $(srcdir)/dwarf_loc.c $(srcdir)/dwarf_loc2.c $(srcdir)/dwarf_loc.h
|
137
|
+
$(CC) $(CFLAGS) -c $(srcdir)/dwarf_loc.c
|
138
|
+
common.o: $(srcdir)/common.c $(srcdir)/common.h
|
139
|
+
$(CC) $(CFLAGS) -c $(srcdir)/common.c
|
140
|
+
gennames: $(srcdir)/gennames.c $(srcdir)/dwarf.h common.o dwgetopt.o
|
141
|
+
$(CC) $(CFLAGS) $(srcdir)/gennames.c common.o dwgetopt.o $(LDFLAGS) -o gennames
|
142
|
+
dwarf_names.h: dwarf_names.c
|
143
|
+
dwarf_names.c: gennames $(srcdir)/dwarf.h
|
144
|
+
rm -f dwarf_names.h dwarf_names.c
|
145
|
+
./gennames @dwarf_namestable@ -i $(srcdir) -o .
|
146
|
+
|
147
|
+
dwarf_line.o: $(srcdir)/dwarf.h libdwarf.h $(srcdir)/dwarf_line_table_reader_common.c $(srcdir)/dwarf_line.c
|
148
|
+
$(CC) $(CFLAGS) -c $(srcdir)/dwarf_line.c -o $@
|
149
|
+
dwarf_print_lines.o: $(srcdir)/dwarf.h libdwarf.h $(srcdir)/dwarf_line_table_reader_common.c $(srcdir)/dwarf_print_lines.c
|
150
|
+
$(CC) $(CFLAGS) -c $(srcdir)/dwarf_print_lines.c -o $@
|
151
|
+
|
152
|
+
|
153
|
+
#
|
154
|
+
# The following are very SGI-centric
|
155
|
+
# psroff is just a troff formatter.
|
156
|
+
# the .mm files are in ATT/USL/USG mm form.
|
157
|
+
# Calling it pdfbld or bldpdf is arbitrary, so allow both.
|
158
|
+
|
159
|
+
docbld:pdfbld
|
160
|
+
bldpdf: pdfbld
|
161
|
+
pdfbld: libdwarf2.1.pdf libdwarf2p.1.pdf mips_extensions.pdf
|
162
|
+
#Oriented to using gsroff now.
|
163
|
+
TROFF=/usr/bin/groff
|
164
|
+
TROFFDEV="-T ps"
|
165
|
+
TROFFDEV=
|
166
|
+
PSTOPDF=/usr/bin/ps2pdf
|
167
|
+
# pr expands tabs to spaces: this avoids problems with tab
|
168
|
+
# interpretation
|
169
|
+
|
170
|
+
# The warning about 'cant break line' is a too-long line used
|
171
|
+
# in the table of contents.
|
172
|
+
# Ignore the warning (and those like it).
|
173
|
+
libdwarf2.1.pdf: $(BUILD_BASE)/libdwarf2.1.mm
|
174
|
+
-pr -t -e $(BUILD_BASE)/libdwarf2.1.mm \
|
175
|
+
| tbl | $(TROFF) $(TROFFDEV) -mm >libdwarf2.1.ps
|
176
|
+
$(PSTOPDF) libdwarf2.1.ps libdwarf2.1.pdf
|
177
|
+
|
178
|
+
libdwarf2p.1.pdf: $(BUILD_BASE)/libdwarf2p.1.mm
|
179
|
+
-pr -t -e $(BUILD_BASE)/libdwarf2p.1.mm \
|
180
|
+
| tbl | $(TROFF) $(TROFFDEV) -mm >libdwarf2p.1.ps
|
181
|
+
$(PSTOPDF) libdwarf2p.1.ps libdwarf2p.1.pdf
|
182
|
+
|
183
|
+
mips_extensions.pdf: mips_extensions.mm
|
184
|
+
-pr $(TROFFDEV) -e mips_extensions.mm | tbl | \
|
185
|
+
$(TROFF) $(TROFFDEV) -mm >mips_extensions.ps
|
186
|
+
$(PSTOPDF) mips_extensions.ps mips_extensions.pdf
|
187
|
+
|
188
|
+
clean:
|
189
|
+
rm -f *.o libdwarf.a
|
190
|
+
rm -f libdwarf.so
|
191
|
+
rm -f libdwarf2.1.ps
|
192
|
+
rm -f mips_extensions.ps
|
193
|
+
rm -f libdwarf2p.1.ps
|
194
|
+
rm -f gennames
|
195
|
+
rm -f ar-output-temp
|
196
|
+
rm -f junk
|
197
|
+
rm -f ALL
|
198
|
+
rm -f gennames
|
199
|
+
rm -f dwarf_names_enum.h dwarf_names_new.h dwarf_names.c dwarf_names.h
|
200
|
+
rm -f ./dwarftied
|
201
|
+
|
202
|
+
install: all
|
203
|
+
echo "No install provided, see comments in the README"
|
204
|
+
|
205
|
+
distclean: clean
|
206
|
+
rm -f config.status config.log config.cache config.h
|
207
|
+
rm -rf autom4te.cache
|
208
|
+
rm -f Makefile
|
209
|
+
rm -f libdwarf.h
|
210
|
+
rm -f ./dwarftied
|
211
|
+
|
212
|
+
tests:
|
213
|
+
$(CC) -DTESTING $(CFLAGS) dwarf_tied.c dwarf_tsearchhash.o -o dwarftied
|
214
|
+
./dwarftied
|
215
|
+
|
216
|
+
|
217
|
+
shar:
|
218
|
+
@echo "shar not set up yet"
|
219
|
+
dist:
|
220
|
+
@echo "dist not set up yet"
|
@@ -0,0 +1,535 @@
|
|
1
|
+
May 01, 2015
|
2
|
+
dwarf_next_cu_header_d() is the latest extension for CU reading.
|
3
|
+
Earlier versions still supported.
|
4
|
+
dwarf_die_from_hash_signature() added so readers can
|
5
|
+
use a hash to access a dwp package file DIE.
|
6
|
+
New support for some of DWARF5 and for dwp debug-fission
|
7
|
+
package file reading.
|
8
|
+
February 25, 2015
|
9
|
+
Now gennames uses dwgetopt() instead of getopt.
|
10
|
+
So it will more easily build where no getopt() available.
|
11
|
+
We copied dwgetopt.h, .c here (rather than reaching around
|
12
|
+
to dwarfdump) to keep the libdwarf build more easily
|
13
|
+
buildable separate from dwarfdump.
|
14
|
+
|
15
|
+
January 8, 2015
|
16
|
+
When malloc fails (out of space) dwarfdump will now
|
17
|
+
use a statically-allocated Dwarf_Error_s struct so it can get
|
18
|
+
the original malloc failure (or other error) reported back to
|
19
|
+
the calling client.
|
20
|
+
|
21
|
+
Some checks for invalid Elf files were changed to actually
|
22
|
+
report errors properly. Thanks to Edward Williamson for
|
23
|
+
providing test cases with odd errors in the Elf and DWARF.
|
24
|
+
|
25
|
+
May 19, 2014
|
26
|
+
REASON FOR RELEASE
|
27
|
+
Now handles DebugFission (part of the unreleased standard
|
28
|
+
named DWARF5) in which debug information can be split from
|
29
|
+
objects and gathered into seperate object files.
|
30
|
+
|
31
|
+
MINOR POINT:
|
32
|
+
|
33
|
+
Added a caveat that dwarf_errmsg() returned string pointers are not
|
34
|
+
necessarily pointers that can be relied on to be valid for the
|
35
|
+
duration of the current executable. It's best for consumers
|
36
|
+
to print or copy the string right away and then forget the returned
|
37
|
+
pointer. This restriction is probably already met by
|
38
|
+
most conservative consumer code: earlier, nothing was said about
|
39
|
+
the lifetime of the string! Eventually it would be nice to
|
40
|
+
actually have more ephemeral strings as then some much better
|
41
|
+
error strings could easily be produced with no leakage and
|
42
|
+
no growth in the size of the running executable.
|
43
|
+
For now, though, all dwarf_errmsg() strings continue to point to
|
44
|
+
static strings. Just please don't depend on it!
|
45
|
+
|
46
|
+
BINARY & SOURCE INCOMPATIBLITY:
|
47
|
+
|
48
|
+
The Producer code drops old dwarf_producer_init* functions
|
49
|
+
and provides an old name with a new interface: dwarf_producer_init().
|
50
|
+
The producer callback function is renamed Dwarf_Callback_Func.
|
51
|
+
Hence code calling the libdwarf producer must change.
|
52
|
+
|
53
|
+
Code calling the consumer interface is not affected.
|
54
|
+
|
55
|
+
The determination of what/how to emit DWARF is now determined
|
56
|
+
at run time, not at build time. It's now much simpler to
|
57
|
+
get the sort of output you want. Provision is made for emitting
|
58
|
+
DWARF3,4,5 and 5 (though that provision is at a very early stage
|
59
|
+
and not much supported yet).
|
60
|
+
|
61
|
+
The postal addresses for SGI in the copyright comments
|
62
|
+
changed from time to time and are no longer accurate.
|
63
|
+
So they are gradually being removed.
|
64
|
+
March 17, 2014
|
65
|
+
The dwarf.v2.mm and index.v2.mm and their pdf files have been
|
66
|
+
removed from the distribution. Those files are available
|
67
|
+
on dwarfstd.org and they are 20 years old, so removed
|
68
|
+
from libdwarf.
|
69
|
+
January 29, 2014
|
70
|
+
Now using dwarf_tsearch() instead of the original complicated
|
71
|
+
allocation code.
|
72
|
+
October 14, 2013
|
73
|
+
The Callback_Func declarations in libdwarf.h were missing a
|
74
|
+
const on the name argument. Adding it removes compiler warnings.
|
75
|
+
But removing it means client code calling
|
76
|
+
producer functions has to change to get their
|
77
|
+
callback function declarations/definitions to match.
|
78
|
+
The change does not affect those calling the consumer interfaces.
|
79
|
+
August 15, 2013
|
80
|
+
Now the printf (stdout) here go through a callback function instead
|
81
|
+
of actually using stdout. That way dwarfdump and other apps have full
|
82
|
+
control of libdwarf output from dwarf_print_lines() for example.
|
83
|
+
It also means callers of dwarf_print_lines() need to have called
|
84
|
+
dwarf_register_printf_callback() to get any actual print output.
|
85
|
+
January 26, 2013
|
86
|
+
Retracted the incompatible change. The interfaces are
|
87
|
+
again compatible with previous releases and the January 25
|
88
|
+
release is withdrawn. Has all the fixes of Jan 25 present
|
89
|
+
in the code.
|
90
|
+
January 25, 2013
|
91
|
+
The definition of the Dwarf_Loc struct
|
92
|
+
could not handle DW_OP_GNU_const_type
|
93
|
+
so it had to change. The new field added makes this version of libdwarf
|
94
|
+
incompatible with any existing dwarfdump. Rebuild dwarfdump
|
95
|
+
and dwarfdump2 to use it with this libdwarf.
|
96
|
+
Moved firmly into C89/C90 usage by more complete use of const
|
97
|
+
and be using int x(void) for example to prototype parameter-less
|
98
|
+
functions. Compiles close to cleanly with
|
99
|
+
gcc options -Wsystem-headers
|
100
|
+
-Wall -Wsign-compare
|
101
|
+
-Wno-format-y2k -W
|
102
|
+
-Wno-unused-parameter -Wstrict-prototypes
|
103
|
+
-Wmissing-prototypes -Wpointer-arith
|
104
|
+
-Wreturn-type -Wcast-qual -Wwrite-strings
|
105
|
+
-Wswitch -Wshadow -Wunused-parameter
|
106
|
+
-Wcast-align -Wchar-subscripts -Winline
|
107
|
+
-Wnested-externs -Wredundant-decls
|
108
|
+
-Wold-style-definition -Wno-pointer-sign
|
109
|
+
|
110
|
+
November 29, 2012
|
111
|
+
The function dwarf_formflag() now returns the actual flag value
|
112
|
+
instead of just 1 or 0. It has been coded wrong a very long time.
|
113
|
+
The DWARF documents (DWARF2 on) have always made it clear any non-zero
|
114
|
+
value means true and zero means false. Now consumers can properly
|
115
|
+
note the value the compiler actually put into the flag byte.
|
116
|
+
November 17, 2012
|
117
|
+
New headers contain the relocation codes for various object
|
118
|
+
ABIs. These headers are needed in libdwarf and expected
|
119
|
+
by builds of dwarfdump[2] for best dwarfdump[2] relocation
|
120
|
+
handling.
|
121
|
+
It is best to build libdwarf and dwarfdump together for
|
122
|
+
best handling of relocatable objects.
|
123
|
+
GNU compilers may generate the operator
|
124
|
+
DW_OP_GNU_implicit_pointer which is generated differently in
|
125
|
+
DWARF2 versus DWARF3/4. Hence a new interface to libdwarf
|
126
|
+
dwarf_loclist_from_expr_b() adds the compilation unit
|
127
|
+
DWARF version number to the argument list (as compared
|
128
|
+
to dwarf_loclist_from_expr_a()). Hopefully few
|
129
|
+
consumers will need to change to use the new interface.
|
130
|
+
December 13, 2011
|
131
|
+
dwarf_lineoff() is now deprecated, dwarf_lineoff_b() is
|
132
|
+
strongly recommended instead.
|
133
|
+
dwarf_add_line_entry() does not have all the line fields
|
134
|
+
needed for generating DWARF3/4, use dwarf_add_line_entry_b() instead.
|
135
|
+
Generation of DWARF3/4 is not yet functional, this new function
|
136
|
+
is a first step.
|
137
|
+
October 29, 2011
|
138
|
+
Added support for reading .debug_types (type unit) data.
|
139
|
+
October 26,2011
|
140
|
+
Revised the Makefile.in and README to make building libdwarf
|
141
|
+
easier to accomplish with unusual locations of libelf headers
|
142
|
+
or other headers or libraries.
|
143
|
+
June 04,2011
|
144
|
+
Non-Elf objects could be used with libdwarf, but
|
145
|
+
no one has contributed non-elf-reading code for libdwarf
|
146
|
+
and a crucial detail was not documented so those writing
|
147
|
+
such object-reading code have not done it entirely correctly.
|
148
|
+
Fundamentally such code must treat a section index of 0 as
|
149
|
+
a real but empty section with no name (an empty name).
|
150
|
+
dwarf_elf_access.c and dwarf_elf_init_finish.c have some comments
|
151
|
+
on this point now.
|
152
|
+
March 29,2011
|
153
|
+
All the code changed a lot because indentations were all over
|
154
|
+
the map, now they are consistent.
|
155
|
+
Additions were made to DWARF4 support.
|
156
|
+
Now we use dicheck (a new open source application) to check indentation.
|
157
|
+
Library users will not see any change, all interfaces remain
|
158
|
+
as before.
|
159
|
+
January 12,2010
|
160
|
+
A libdwarf user has noticed that the April 4, 2009
|
161
|
+
consumer function changes introduced
|
162
|
+
a problem: the default CFA column was DW_FRAME_CFA_COL
|
163
|
+
even when a newer DWARF3 consumer frame interface like
|
164
|
+
dwarf_get_fde_info_for_all_regs3() is used. The
|
165
|
+
libdwarf2.1.pdf documentation
|
166
|
+
stated the default should be DW_FRAME_CFA_COL3 in that case.
|
167
|
+
|
168
|
+
The introduction of a caller-specified frame-column
|
169
|
+
function (dwarf_set_frame_cfa_value())
|
170
|
+
in that April 4, 2009 release was flawed in that it failed
|
171
|
+
to match the documentation.
|
172
|
+
|
173
|
+
Now the default frame column is DW_FRAME_CFA_COL3 unless
|
174
|
+
the configure option --enable-oldframecol
|
175
|
+
is used at libdwarf build time.
|
176
|
+
If you are using libdwarf old frame consumer interfaces
|
177
|
+
dwarf_get_fde_info_for_reg(), dwarf_get_fde_info_for_cfa_reg(),
|
178
|
+
and dwarf_get_fde_info_for_all_regs() and want unchanged operation
|
179
|
+
then please configure libdwarf with --enable-oldframecol .
|
180
|
+
or add the call dwarf_set_frame_cfa_value(dbg,DW_FRAME_CFA_COL)
|
181
|
+
after calling a libdwarf initialization function.
|
182
|
+
It is impossible to configure a single libdwarf.a so that
|
183
|
+
it transparently defaults to both DW_FRAME_CFA_COL
|
184
|
+
and DW_FRAME_CFA_COL3.
|
185
|
+
|
186
|
+
A call such as dwarf_set_frame_cfa_value(dbg,DW_FRAME_CFA_COL3)
|
187
|
+
or dwarf_set_frame_cfa_value(dbg,DW_FRAME_CFA_COL)
|
188
|
+
(or some other name/value of your choosing)
|
189
|
+
following the dwarf_init() call gives your application
|
190
|
+
full control of the frame cfa column independent of the libdwarf
|
191
|
+
configure option. See the libdwarf2.1.pdf documentation for details.
|
192
|
+
We strongly recommend that you use dwarf_set_frame_cfa_value()
|
193
|
+
to avoid a configure-time dependency.
|
194
|
+
|
195
|
+
July 7, 2009
|
196
|
+
Implemented support for elf 'rela' relocations so libdwarf and dwarfdump
|
197
|
+
can read *nix .o files with such relocations reasonably,
|
198
|
+
at least for some machines
|
199
|
+
(see dwarf_elf_access.c for EM_ in 'case' statements.)
|
200
|
+
This changes the binary access for non-Elf object users (folks
|
201
|
+
who have coded there own non-Elf access routines do reference
|
202
|
+
internals of dwarf_opaque.h), but the new data can be left zero
|
203
|
+
and the rest of the code should work fine.
|
204
|
+
dwarf_opaque.h gathers section data in Dwarf_Section_s structs
|
205
|
+
which simplifies the code in dwarf_init_finish.c and clarifies
|
206
|
+
what fields are section related.
|
207
|
+
July 4, 2009
|
208
|
+
When something erroneous is detected in a die
|
209
|
+
information about the CU context may be of interest.
|
210
|
+
So we added dwarf_CU_dieoffset_given_die(), a function which allows
|
211
|
+
clients to find the relevant CU die for any die.
|
212
|
+
The consumer can use normal attribute access functions to
|
213
|
+
print information about that CU die (and the erroneous die,
|
214
|
+
of course). See the libdwarf consumer document for more
|
215
|
+
information.
|
216
|
+
April 27, 2009
|
217
|
+
Interface additions: dwarf_loclist_from_expr_a() and
|
218
|
+
dwarf_get_ranges_a() are new interfaces like
|
219
|
+
dwarf_loclist_from_expr() and dwarf_get_ranges() respectively,
|
220
|
+
but with arguments allowing
|
221
|
+
full support for different CIEs
|
222
|
+
in an executable having different address-sizes
|
223
|
+
(and their compilation unit DIEs if .debug_info is present).
|
224
|
+
dwarf_get_loclist_entry() does not support
|
225
|
+
differing address sizes per CIE/CU.
|
226
|
+
April 4, 2009
|
227
|
+
Added new functions dwarf_set_frame_cfa_value()
|
228
|
+
dwarf_set_frame_same_value(), and
|
229
|
+
dwarf_set_frame_undefined_value(). These are essential
|
230
|
+
for ABIs where the real register numbers exceed 1033
|
231
|
+
(such as ppc). Failing to use these leads to
|
232
|
+
frame instructions DW_CFA_undefined and
|
233
|
+
DW_CFA_same_value emitting values that cannot be
|
234
|
+
interpreted correctly by a libdwarf consumer.
|
235
|
+
See dwarfdump for examples of use.
|
236
|
+
Feb 14, 2009
|
237
|
+
Added configure option --enable-nonstandardprintf
|
238
|
+
which makes it easy to get printf of Dwarf_Unsigned (etc)
|
239
|
+
types correct even for non-standard compilers.
|
240
|
+
Dec 30, 2008
|
241
|
+
Added interfaces for getting and printing the .debug_ranges
|
242
|
+
data.
|
243
|
+
Dec 8, 2008
|
244
|
+
Record the abbreviation 'code' (index) in each DIE.
|
245
|
+
Making it possible for a pretty-printer to print the
|
246
|
+
abbreviation code.
|
247
|
+
Sep 30, 2008
|
248
|
+
Phil Mucci provided an a.out test chase which demonstrates a bug
|
249
|
+
in 64bit DWARF2 output by gcc. Now libdwarf works around this
|
250
|
+
and with -v -v -v -v prints a warning.
|
251
|
+
Sep 29, 2008
|
252
|
+
Thanks to Phil Mucci for providing a little-endian 64bit
|
253
|
+
test object file that exposed a problem when there are 'extra' bytes
|
254
|
+
(possibly unused) after a line table prologue header and before the
|
255
|
+
line table itself. This releases fixes the bug.
|
256
|
+
|
257
|
+
Thanks to Matthew Legendre for pointing out that we were sharing
|
258
|
+
de_fde_count for eh and non-eh and that could cause erroneous
|
259
|
+
error returns in a couple of functions.
|
260
|
+
These counts are now separate.
|
261
|
+
April 9, 2008
|
262
|
+
libdwarf would behave badly if one compilation unit had more than 64K
|
263
|
+
abbreviations: It was both very slow dealing with abbreviations and would
|
264
|
+
get mixed up and error-off. Increased the size of some internal variables
|
265
|
+
and rewrote abbreviation lookup.
|
266
|
+
February 18, 2008
|
267
|
+
It is now possible to write one's own access to objects, making it possible
|
268
|
+
to use a different library than libelf or even read a completely
|
269
|
+
different object format than ELF.
|
270
|
+
See dwarf_object_init() and see the new source files
|
271
|
+
dwarf_original_elf_init.c and dwarf_elf_access.c for example
|
272
|
+
code using the new function-pointer approach as it's implementation.
|
273
|
+
Thanks to Josh Fuhs for doing the design and 99% of the work to make
|
274
|
+
this happen.
|
275
|
+
February 2, 2008
|
276
|
+
Now pro_init() defaults to standard DWARF3 generated offset sizes.
|
277
|
+
But if a new flag DW_DLC_OFFSET_SIZE_64 or'd into flags passed to
|
278
|
+
dwarf_produser_init() or dwarf_producer_init_b,
|
279
|
+
the DWARF3 extended offset size is generated (if the address size
|
280
|
+
is 64 bit).
|
281
|
+
The new configure option --enable-dwarf-format-strict-32bit
|
282
|
+
forces pro_init() to always cause 32bit offset dwarf generation.
|
283
|
+
The new configure option --enable-dwarf-format-sgi-irix forces
|
284
|
+
the old SGI IRIX 64bit offset generation for 64bit pointer size objects.
|
285
|
+
|
286
|
+
This is intended to simplify standard DWARF3 generation with
|
287
|
+
the now-normal use of 32bit DWARF offsets for both 32 and 64
|
288
|
+
bit pointer objects.
|
289
|
+
|
290
|
+
It does require that anyone wanting SGI IRIX dwarf generation
|
291
|
+
with its non-standard offsets for 64bit objects use the new
|
292
|
+
--enable-dwarf-format-sgi-irix configure time option.
|
293
|
+
|
294
|
+
This has no effect on dwarf reader code. It affects code calling
|
295
|
+
the libdwarf producer interfaces.
|
296
|
+
|
297
|
+
December 8, 2007
|
298
|
+
Had to add an ugly configure conditional as libelf has
|
299
|
+
unconditional use of off64_t in recent libelf.h
|
300
|
+
July 3, 2007
|
301
|
+
A new interface function, dwarf_loclist_from_expr(),
|
302
|
+
allows easy extraction of dwarf expression bytes from
|
303
|
+
expressions in frame data.
|
304
|
+
May 8, 2007
|
305
|
+
Now documents released as .mm and .pdf (no longer as .ps).
|
306
|
+
May 7, 2007
|
307
|
+
Incorporates Sun Microsystems extensions to dwarf.h and
|
308
|
+
to the consumer and producer libraries. The changes
|
309
|
+
include corrections so the producer library cleans up it's memory
|
310
|
+
use on a call to dwarf_producer_finish(dbg).
|
311
|
+
Thanks to Chris Quenelle of Sun for these contributions.
|
312
|
+
|
313
|
+
March 20, 2007
|
314
|
+
nroff/troff and the AT&T -mm package are not widely available,
|
315
|
+
so now the Makefile refers to groff, which works quite nicely.
|
316
|
+
|
317
|
+
February 20, 2007
|
318
|
+
Documented libdwarf thread safety in README.
|
319
|
+
Fixed memory leak in dwarf macro reading code.
|
320
|
+
Removed use of static data in dwarf macro
|
321
|
+
reading code: now uses stack/heap (for
|
322
|
+
thread safety).
|
323
|
+
|
324
|
+
February 9, 2007
|
325
|
+
Maintenance of libdwarf is now outside SGI
|
326
|
+
as David Anderson has left SGI.
|
327
|
+
|
328
|
+
March 29, 2006
|
329
|
+
The March 27, 2006 version accomodates DWARF3.
|
330
|
+
Some people have been using the library without
|
331
|
+
altering dwarf.h, libdwarf.h to accomodate
|
332
|
+
large numbers of registers. This exposed a bug
|
333
|
+
(an off-by-one error) but also makes it clear
|
334
|
+
additional documentation is needed. So
|
335
|
+
in libdwarf large new comments near 'TARGET DEPENDENCY'
|
336
|
+
attempt to explain better.
|
337
|
+
Oct 03, 2005
|
338
|
+
The July version had an incompatible interface: old
|
339
|
+
dealloc code did not always work right. The incompatibility
|
340
|
+
is now fixed and the new features remain.
|
341
|
+
|
342
|
+
July 15, 2005
|
343
|
+
New optional alloc-check code optionally checks all
|
344
|
+
allocated memory is freed (malloc_check.h malloc_check.c)
|
345
|
+
Various new dealloc routines written as the previous approach
|
346
|
+
of letting client code do detailed dealloc turned out not
|
347
|
+
to dealloc all memory.
|
348
|
+
To get the new checking you must manually change a line
|
349
|
+
in malloc_check.h and rebuild libdwarf.
|
350
|
+
|
351
|
+
|
352
|
+
Mar 31, 2005
|
353
|
+
Documented the libexc.so/.debug_funcnames
|
354
|
+
dependency and the 64bit-offset DWARF extension in
|
355
|
+
mips_extentions.{mm,ps}.
|
356
|
+
|
357
|
+
Mar 21, 2005
|
358
|
+
gcc 3.3 and 3.4 .eh_frame 'z' augmentations are not handled
|
359
|
+
correctly, so libdwarf gives an error when attempting to
|
360
|
+
print such. gcc 2 'eh' augmentation is simpler and
|
361
|
+
prints correctly. (.eh_frame is a GNU section,
|
362
|
+
not DWARF2/3, and what is recorded in .eh_frame is not
|
363
|
+
specified by DWARF2/3, though .eh_frame does resemble
|
364
|
+
DWARF2/3 .debug_frame).
|
365
|
+
|
366
|
+
|
367
|
+
Oct 28, 2004
|
368
|
+
Updated contact address in copyright: SGI moved 1/4 mile
|
369
|
+
in 2003 to a new address: 1500 Crittenden Lane.
|
370
|
+
|
371
|
+
Documented additional vendor extensions.
|
372
|
+
|
373
|
+
Oct 27, 2004
|
374
|
+
Added known vendor extensions to dwarf2/3 to dwarf.h
|
375
|
+
HP, GNU, PGI and UPC extensions are now recorded.
|
376
|
+
Recorded vendor extensions from Concurrent.
|
377
|
+
|
378
|
+
Feb 3, 2004
|
379
|
+
If 'Dwarf_Word' is 64 bits, two macros reading leb numbers
|
380
|
+
fail to initialize upper bits of the values read.
|
381
|
+
First noticed with bogus line numbers printing from dwarfdump.
|
382
|
+
Now we use already-existing functions, avoiding the problem.
|
383
|
+
|
384
|
+
Oct 02, 2003
|
385
|
+
Support .debug_loc section fully.
|
386
|
+
|
387
|
+
Sept 29, 2003
|
388
|
+
Support DW_FORM_indirect properly.
|
389
|
+
Supports loclists in part (but not multiple loclist entries yet).
|
390
|
+
Support 'padding bytes' at end of .debug_arange and
|
391
|
+
.debug_pubnames and .debug_pubtypes per CU
|
392
|
+
(recent dwarf committee email made it clear this is appropriate).
|
393
|
+
|
394
|
+
May 23, 2002
|
395
|
+
Libdwarf now asks for sections only when they are
|
396
|
+
used, so that unneeded sections aren't loaded.
|
397
|
+
Support for using SGI's ELF library as an alternative to
|
398
|
+
using AT&T libelf-style has been added (the SGI ELF
|
399
|
+
library is presently only available internally to SGI).
|
400
|
+
|
401
|
+
Jan 10, 2002
|
402
|
+
Fixed memory leak in dwarf_finish().
|
403
|
+
|
404
|
+
Aug 21, 2001
|
405
|
+
If one called dwarf_add_file_decl()
|
406
|
+
or dwarf_add_directory_decl() but never added a line,
|
407
|
+
.debug_line was not produced. This was a mistake,
|
408
|
+
as if any file or directory was provided .debug_line
|
409
|
+
should be produced. Now it is produced.
|
410
|
+
|
411
|
+
June 14, 2001
|
412
|
+
Given a cu header offset, it was not easy to derive the
|
413
|
+
CU header DIE offset. Created the new
|
414
|
+
function dwarf_get_cu_die_offset_given_cu_header_offset()
|
415
|
+
do get the CU header DIE offset.
|
416
|
+
Added the function dwarf_get_arange_cu_header_offset()
|
417
|
+
so the cu header offset could be retrieved from .debug_aranges
|
418
|
+
information.
|
419
|
+
|
420
|
+
June 07, 2001
|
421
|
+
Major bug in dwarf_leb.c decoding large integers
|
422
|
+
(Dwarf_Signed 64 bit where library is compiled in ILP32)
|
423
|
+
found and fixed.
|
424
|
+
|
425
|
+
May 21, 2001
|
426
|
+
Some small fixes have been found by various folks,
|
427
|
+
so it seems time to prepare a new source release.
|
428
|
+
See ChangeLog for details.
|
429
|
+
|
430
|
+
April 15, 2000
|
431
|
+
The libdwarf copyright has changed to
|
432
|
+
version 2.1 of the GNU Lesser General Public License.
|
433
|
+
Anyone holding a version of libdwarf that was published
|
434
|
+
before this new copyright is allowed to use
|
435
|
+
the copyright published in that earlier libdwarf source
|
436
|
+
on the earlier source
|
437
|
+
or to use
|
438
|
+
this new copyright on the earlier source,
|
439
|
+
at their option.
|
440
|
+
|
441
|
+
|
442
|
+
December 08, 1999
|
443
|
+
The dwarf committee has adopted the offset-extension
|
444
|
+
proposal. This allows compatibly emitting
|
445
|
+
dwarf with 64bit offsets.
|
446
|
+
|
447
|
+
The dwarf reader now automatically figures out which is in use.
|
448
|
+
The dwarf writer configures itself at the time the
|
449
|
+
writer initialization routine is called, though
|
450
|
+
the writer is restricted, at libdwarf
|
451
|
+
compile time, to one of
|
452
|
+
mips/sgi pure 32/pure 64 offsets/pointers.
|
453
|
+
|
454
|
+
32bit offsets only (per dwarf 2.0.0 and cygnus)
|
455
|
+
|
456
|
+
32bit offsets with extension to 64bit offsets
|
457
|
+
allowed (the offset-extension newly passed).
|
458
|
+
|
459
|
+
In addition, a great deal of duplicate code
|
460
|
+
for the sgi .debug_weaknames, .debug_funcnames,
|
461
|
+
.debug_varnames and .debug_typenames sections has
|
462
|
+
been removed: a single set of functions does the real work now.
|
463
|
+
|
464
|
+
Sept 29, 1999
|
465
|
+
Just found out that cygnus is, on 64bit targets, generating
|
466
|
+
32bit offsets (as elf32 has, for example) with 64 bit
|
467
|
+
pointers (in references to text and data).
|
468
|
+
Whereas sgi has always generated 64bit dwarf with
|
469
|
+
64 bit offsets (as in elf64) and 64bit pointers for
|
470
|
+
64bit pointer objects.
|
471
|
+
I'll call the sgi approach 64-bit and the cygnus approach
|
472
|
+
32bit-offsets.
|
473
|
+
|
474
|
+
Cygnus is following the DWARF2 spec as written, so they are
|
475
|
+
right in doing only 32bit-offsets.
|
476
|
+
|
477
|
+
Folks at sgi (including me) think that, as for elf64,
|
478
|
+
the offsets in dwarf for 64bit pointer-apps should be
|
479
|
+
64 bits. We think it is only a matter of time
|
480
|
+
before we really *need* 64bit offsets and when that happens
|
481
|
+
it will be on an important app. Disk space is cheap,
|
482
|
+
so lets just go 64 bit on 64bit apps (such as ia64 apps)
|
483
|
+
to avoid a future problem.
|
484
|
+
I(davea@sgi.com) think the 'pointer-size' references in the dwarf
|
485
|
+
spec were really written for 64-bit pointer apps.
|
486
|
+
I don't recall serious consideration of 64bit pointer
|
487
|
+
apps in the committee deliberations (I did miss
|
488
|
+
a couple of meetings) and think 64bit offsets
|
489
|
+
are consistent with dwarf2, even though the speci
|
490
|
+
was not written for such. We think true full 64 bit
|
491
|
+
dwarf2 is the right way to go (the spec changes
|
492
|
+
are obvious: file and section offsets become 64bit
|
493
|
+
with 64bit pointer objects.
|
494
|
+
|
495
|
+
MIPS/SGI is definitely 64-bit offsets for 64 bit objects,
|
496
|
+
cygnus is definitely 32bit-offsets for earlier 64bit pointer
|
497
|
+
environments.
|
498
|
+
|
499
|
+
At any rate, now the dwarf reader allows and accomodates
|
500
|
+
both and the dwarf producer also accomodates both.
|
501
|
+
Some tweaking of the pro_init.c or dwarf_init_finish.c
|
502
|
+
files may be necessary in future: no other changes should
|
503
|
+
be needed to accomodate the two 64bit approaches, as
|
504
|
+
the library (and dwarfdump) now deal with both forms.
|
505
|
+
|
506
|
+
|
507
|
+
August 20, 1999
|
508
|
+
Added some #ifndef/#define to pro_util.h to let libdwarf build
|
509
|
+
on more hosts. (since those hosts don't need the producer
|
510
|
+
code, AFAIK, zero values suffice for missing #defines.)
|
511
|
+
|
512
|
+
July 21, 1999
|
513
|
+
Now reader transparently reads either-endianness data
|
514
|
+
from an either-endianness object.
|
515
|
+
Updated dwarf.h and libdwarf.h to recognize
|
516
|
+
GNU egcs dwarf extensions and to print the egcs eh_frame
|
517
|
+
section.
|
518
|
+
|
519
|
+
June 10, 1999
|
520
|
+
gnu configure version of libdwarf made available for the
|
521
|
+
first time.
|
522
|
+
Still allows only same-endian-as-host in objects.
|
523
|
+
|
524
|
+
August, 1994
|
525
|
+
libdwarf source made available for ftp on sgigate.sgi.com
|
526
|
+
/ftp/pub
|
527
|
+
|
528
|
+
June, 1994
|
529
|
+
Consumer interface changed completely, following
|
530
|
+
"Candy Machine Interfaces" chapter from
|
531
|
+
"Writing Solid Code" by Steve Maguire (Microsoft Press).
|
532
|
+
|
533
|
+
April, 1993
|
534
|
+
Initial version of libdwarf for dwarf version 2
|
535
|
+
written at sgi.
|