[DynInst_API:] [dyninst/dyninst] 94733a: DW_CATCH debugging.


Date: Mon, 30 Oct 2023 08:16:20 -0700
From: Bolo -- Josef Burger <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 94733a: DW_CATCH debugging.
  Branch: refs/heads/bolo/symdebug
  Home:   https://github.com/dyninst/dyninst
  Commit: 94733a04aa6b33ef8e6e6e8a73ed5442fd0dd4d6
      https://github.com/dyninst/dyninst/commit/94733a04aa6b33ef8e6e6e8a73ed5442fd0dd4d6
  Author: Bolo <bolo@xxxxxxxxxxx>
  Date:   2023-10-30 (Mon, 30 Oct 2023)

  Changed paths:
    M symtabAPI/src/dwarfWalker.C
    M symtabAPI/src/dwarfWalker.h

  Log Message:
  -----------
  DW_CATCH debugging.

Firewalls the exception throw in the dwarf parser so that
a backtrace is possible.

This catches the 'bad_cast' exception throws.   It seems
they all come from parseMember().

In addition, I noticed that we are not parsing (default error)
the '0' entries on el8 (they don't exist on ubuntu 20/22) and
we might not be parsing dwarf correctly.  It appears to be legal
dwarf that we are doing a default action on, instead of an explicit
action?

There are actually two firewalls, in case an exception is thrown
past the case statement of parse_int() -- which is now _parse_int()
with the exception firewall in parse_int()

The log messages all are tagged DW_CATCH for easy grepping.


[← Prev in Thread] Current Thread [Next in Thread→]
  • [DynInst_API:] [dyninst/dyninst] 94733a: DW_CATCH debugging., Bolo -- Josef Burger <=