head 1.3; access; symbols pkgsrc-2023Q4:1.3.0.16 pkgsrc-2023Q4-base:1.3 pkgsrc-2023Q3:1.3.0.14 pkgsrc-2023Q3-base:1.3 pkgsrc-2023Q2:1.3.0.12 pkgsrc-2023Q2-base:1.3 pkgsrc-2023Q1:1.3.0.10 pkgsrc-2023Q1-base:1.3 pkgsrc-2022Q4:1.3.0.8 pkgsrc-2022Q4-base:1.3 pkgsrc-2022Q3:1.3.0.6 pkgsrc-2022Q3-base:1.3 pkgsrc-2022Q2:1.3.0.4 pkgsrc-2022Q2-base:1.3 pkgsrc-2022Q1:1.3.0.2 pkgsrc-2022Q1-base:1.3 pkgsrc-2021Q4:1.2.0.42 pkgsrc-2021Q4-base:1.2 pkgsrc-2021Q3:1.2.0.40 pkgsrc-2021Q3-base:1.2 pkgsrc-2021Q2:1.2.0.38 pkgsrc-2021Q2-base:1.2 pkgsrc-2021Q1:1.2.0.36 pkgsrc-2021Q1-base:1.2 pkgsrc-2020Q4:1.2.0.34 pkgsrc-2020Q4-base:1.2 pkgsrc-2020Q3:1.2.0.32 pkgsrc-2020Q3-base:1.2 pkgsrc-2020Q2:1.2.0.28 pkgsrc-2020Q2-base:1.2 pkgsrc-2020Q1:1.2.0.8 pkgsrc-2020Q1-base:1.2 pkgsrc-2019Q4:1.2.0.30 pkgsrc-2019Q4-base:1.2 pkgsrc-2019Q3:1.2.0.26 pkgsrc-2019Q3-base:1.2 pkgsrc-2019Q2:1.2.0.24 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.22 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.2.0.20 pkgsrc-2018Q4-base:1.2 pkgsrc-2018Q3:1.2.0.18 pkgsrc-2018Q3-base:1.2 pkgsrc-2018Q2:1.2.0.16 pkgsrc-2018Q2-base:1.2 pkgsrc-2018Q1:1.2.0.14 pkgsrc-2018Q1-base:1.2 pkgsrc-2017Q4:1.2.0.12 pkgsrc-2017Q4-base:1.2 pkgsrc-2017Q3:1.2.0.10 pkgsrc-2017Q3-base:1.2 pkgsrc-2017Q2:1.2.0.6 pkgsrc-2017Q2-base:1.2 pkgsrc-2017Q1:1.2.0.4 pkgsrc-2017Q1-base:1.2 pkgsrc-2016Q4:1.2.0.2 pkgsrc-2016Q4-base:1.2 pkgsrc-2016Q3:1.1.0.4 pkgsrc-2016Q3-base:1.1 pkgsrc-2016Q2:1.1.0.2 pkgsrc-2016Q2-base:1.1; locks; strict; comment @# @; 1.3 date 2022.03.19.08.47.25; author wiz; state Exp; branches; next 1.2; commitid K1wS68GmMhscWNwD; 1.2 date 2016.12.11.21.34.26; author kamil; state Exp; branches; next 1.1; commitid ujoL8c10AbYu0Cxz; 1.1 date 2016.04.10.16.54.36; author kamil; state Exp; branches; next ; commitid H1KI6LY4dXBEl62z; desc @@ 1.3 log @libdwarf: update to 0.3.4. 2021-07-15: libdwarf, dwarfdump, etc all now use a semantic version number rather than a date string. As of today the current version is "0.1.1". 2021-02-15: dwarfdump given -ku now prints brief lists counting the uses of every TAG, ATtribute, and FORM, a concise summary of the basic building blocks of DWARF. 2021-01-23: dwarfdump now reports and checks-for-sensible-values the expression block offsets that DW_OP_bra and DW_OP_skip use. If an expression does not use either of those operators dwarfdump does not report the individual DW_OP expression offsets. 2020-12-23: dwarfdump --print-macinfo now follows DW_MACRO_imports and does several additional checks on .debug_macro section data. --check-macros skips printing most entries but does all that and reports even more about that section. Since .debug_macro does not reproduce all macro operations in the original source the MACRONOTEs printed are indications of things to consider, not errors. 2020-11-21: dwarfdump now prints DWARF expression operators each on its own line. This makes viewing DWARF expressions much nicer given the increased use of much longer expressions. Those expression operators that reference DIES are now followed, verified, and the target DW_TAG and DW_AT_name are printed. A new dwarfdump.conf command 'option:' lets one specify option: --format-expr-ops-joined in case you want the old style DWARF expression operators-on-one-line. Where the DWARF DIE children nest > nine-deep dwarfdump switches from indentation by spaces to a nest-level number. 2020-09-08: libdwarf/dwarfdump work well with DWARF4 and DWARF5, including DWP files. 2020-07-08: libdwarf now reads .debug_gnu_pubtypes & pubnames (non-standard but gcc creates them in DWARF5) via a small number of new functions and dwarfdump --print-debug-gnu prints both sections. Verifying the .debug_info offsets is not yet done. 2020-06-29: Dwarfdump now dumps DWARF5 .debug_rnglists and .debug_loclists. To handle DWARF5 there are a small number of new functions. All existing functions are still supported, but to read DWARF5 some small changes are required. In libdwarf see libdwarf2.1.pdf and also see libdwarf/ChangeLog for details. 2020-05-23: dwarfdump now takes much less malloc() to work, as measured by valgrind --tool=massif and massif-visualizer. A dwarfdump run that did 2.2Gib of malloc/free before the changes now does 1.4GiB. 2020-05-19: libdwarf and dwarfdump now support DWARF5 .debug_rnglists. The new interfaces are documented in libdwarf/libdwarf2.1.pdf. The new option to dwarfdump is "--print-raw-rnglists". 2019-11-04: The code (dwarfdump/libdwarf), regressiontests, and readelfobj directories and all their tests are known to work on Linux(Ubuntu on x86_64 and i686), FreeBSD, MacOS Catalina (with Apple Command Line Tools), and IBM s390 (Big Endian!) running Ubuntu Linux. On Windows-MinGW the full regression tests have not been tested, but 'make check' works for dwarfdump/libdwarf (the current dwarfdump make check actually does run dwarfdump and checks that dwarfdump basically works). 2019-04-16: Now a --disable-libelf configure/build of libdwarf/dwarfdump can read elf, mach-o DSYM, and PE executable/dll object files. Such a build will not need or use libelf or elf.h . The dwarfdump options that display Elf section headers or relocation record data are not available in a --disable-libelf build. Nor is dwarfdump's support of reading archive files available in a --disable-libelf build. This libdwarf detects corrupt Elf object files much sooner than before, but does not explain what the corruption really is. Use GNU readelf (or readelfobj, a project on sourceforge) to get more detail about the problems found. See https://www.prevanders.net/dwarf.html for the git clone command for readelfobj. With --disable-libelf the --enable-dwarfgen option does not work: the dwarfgen build will fail. 2019-02-18: For building on machines without a usable elf.h or libelf but possibly with a libelf.h visible, --disable-libelf ensures the build won't use libelf or elf.h anywhere. -lz will be done if zlib.h is visible, independent of libelf, libelf.h, and elf.h 2019-02-08: If one has a standard Bourne shell (sh) available (such as sh on MacOS and sh in MinGW on Windows) one may be able to build libdwarf and dwarfdump natively and they can read Mach-o dSYM and PE object files to access DWARF information. This has NOT been tested under MacOS, so will likely fail on MacOS. No elf.h, libelf.h or zlib.h should be present. For example, the following is known to work under MinGW and this general plan applies to all builds including all builds with elf.h and libelf: mkdir test cd test #(copy the source tree into test, if from git #the name of the top level will likely be 'code') cd code sh -x scripts/FIX-CONFIGURE-TIMES cd .. mkdir bld cd bld ../code/configure (choose your preferred options here) make 2019-01-15: The pre-build dwarf_names.[hc] and the tag related files are now part of the standard build so there is no longer any two-stage aspect of the build. The build simply compiles files in the distribution. If you use git to access the source be sure to sh scripts/FIX-CONFIGURE-TIMES to adjust the file timestamps as having timestamps in the right relationships is vital and git does not maintain timestamps. The script is always safe to run. It takes about 30 seconds. 2018-12-22: The complicated process of building certain .c and .h files has been relegated to the few people updating files libdwarf/libdwarf.h.in, libdwarf/dwarf_errmsg_list.h, dwarfdump/tag_attr_ext.list,dwarfdump/tag_attr.list, dwarfdump/tag_tree_ext.list, and dwarfdump/tag_tree.list. For everyone else the build is simply compiling the .c and .h files in the distribution. Simpler. sh scripts/buildstandardsource.sh creates these files. 2018-10-22: dwarfdump can now dump mach-o (MacOS) dSYM dwarf. All the usual libdwarf interfaces work. A new libdwarf initialization call dwarf_init_path() may be convenient for you to use. 2018-08-05: dwarfdump.conf is now installed by make install in /shared/libdwarf/dwarfdump . Any dwarfdump.conf or .dwarfdump.conf in your $HOME directory will be found before the one in shared. The file is only opened when one wants a more accurate register naming in frame reports (the default is just to name things r54 etc, choosing the right abi with -x abi= can be helpful at times). 2018-06-24: The configure has been completely rewritten to follow current standards and practices. For simple builds the standard ./configure make works as always, but the generated libdwarf.a appears in libdwarf/.libs/libdwarf.a , as does the shared object if "./configure --enable-shared" is used. To build dwarfgen one adds the configure option --enable-dwarfgen instead of using 'make all'. To build the example code one adds the configure option --enable-dwarfexample instead of using 'make all'. "mkdir /tmp/bld ; cd /tmp/bld ; /configure" continues to work, as does configure --host= . 2018-06-14: A small simplification of build options simplifies building across different environments. If your environment needs to use the non-standard elf_open() call instead of unix/linux open() then do /configure --enable-elf-open which sets HAVE_ELF_OPEN in config.h. 2018-03-27: All the DWARF5 FORMs appear to be dealt with. It's now possible to cross-compile libdwarf and dwarfdump. See the README. 2016-11-30: An alternative build mechanism using cmake is now in the source tree. The builds for product testing continue to be done using configure && make. @ text @@@comment $NetBSD$ bin/dwarfdump include/libdwarf-0/dwarf.h include/libdwarf-0/libdwarf.h lib/libdwarf.la lib/pkgconfig/libdwarf.pc man/man1/dwarfdump.1 share/dwarfdump/dwarfdump.conf @ 1.2 log @Update 20160115 to 20161124 This includes security fixes. Upstream changelog ================== libdwarf-20161124 Fixes some newly discovered vulnerabilities (most due to corrupted DWARF). Thanks to Puzzor (Shi Ji) and Agostino Sarubbo for finding and reporting these and for providing short test cases. libdwarf-20161021 Fixes one place where erroenous dwarf not caught, Updates version strings, adds a bit more DWARF5 support, and converts the few Python scripts from python2 to python3. libdwarf-20161001 Fixes serious bugs in release 20160929 and all earlier releases relating to encoding/decoding leb numbers. It is unlikely anyone will see any difference in output, but values showing a difference can be constructed. libdwarf/dwarf_leb.c has new test code and a few of the tests there demonstrated problems. gcc -fsanitize=undefined found problems as well. libdwarf-20160929 Fixes three serious bugs in release 20160923. Two of them old bugs, one new in 20160923. The bugs were exposed by occasional inconsistent behavior in one or two regression tests. libdwarf-20160923 DO NOT USE: use libdwarf-20161001 instead. Think of this as withdrawn. Many improvements in the code catching corrupt dwarf. Quite a number of places with out-of-bound read/write of memory fixed. Trivial but annoying memory leaks in dwarfdump fixed. Thanks to Puzzor, STARLAB, Salvatore Bonaccorso, Agostino Sarubbo, Vul, James Grumbach, and others for reporting memory corruption and other issues. libdwarf-20160613 Incorporates code detecting malformed DWARF and malformed Elf object files. Dwarfdump and libdwarf performance reading frame data improved significantly, though the improvements don't apply to all frame data interface functions. The configure/make system now builds libdwarf shared objects (when asked to) with a proper soname. Thanks to Sture Carlson, Hannes Domani, etienneberg, Steve Kaufman, Yue Liu, and Fabian Wolff for their help/comments on libdwarf. Major thanks to Carlos Alberto Enciso for his collaboration. libdwarf-20160507 Incorporates many additional checks so that corrupt dwarf will not crash an executable calling libdwarf. Thanks to Yue Liu for providing a number of small and corrupted objects. @ text @d3 4 a6 5 include/dwarf.h include/libdwarf.h lib/libdwarf.a lib/libdwarf.so lib/libdwarf.so.1 d8 1 a8 3 share/doc/libdwarf/libdwarf2.1.pdf share/doc/libdwarf/libdwarf2p.1.pdf share/doc/libdwarf/mips_extensions.pdf @ 1.1 log @Import libdwarf-20160115 as devel/libdwarf Library to access the DWARF debugging file format which supports source level debugging of a number of procedural languages, such as C, C++, and Fortran. This package contains utility dwarfdump. @ text @d7 1 @