diff options
Diffstat (limited to 'dwarf_wrappers.cxx')
-rw-r--r-- | dwarf_wrappers.cxx | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/dwarf_wrappers.cxx b/dwarf_wrappers.cxx new file mode 100644 index 00000000..ad690d78 --- /dev/null +++ b/dwarf_wrappers.cxx @@ -0,0 +1,40 @@ +// -*- C++ -*- +// Copyright (C) 2008 Red Hat Inc. +// +// This file is part of systemtap, and is free software. You can +// redistribute it and/or modify it under the terms of the GNU General +// Public License (GPL); either version 2, or (at your option) any +// later version. + +#include "dwarf_wrappers.h" +#include "staptree.h" + +#include <cstring> +#include <string> +#include <elfutils/libdwfl.h> + +using std::string; + +void dwfl_assert(const string& desc, int rc) +{ + if (rc == 0) + return; + string msg = "libdwfl failure (" + desc + "): "; + if (rc < 0) + msg += dwfl_errmsg (rc); + else + msg += std::strerror (rc); + throw semantic_error (msg); +} + +void dwarf_assert(const string& desc, int rc) +{ + if (rc == 0) + return; + string msg = "libdw failure (" + desc + "): "; + if (rc < 0) + msg += dwarf_errmsg (rc); + else + msg += std::strerror (rc); + throw semantic_error (msg); +} |