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.
- 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.
|