]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
dwarflint: Move .debug_info checks to check_debug_info.hh/.ii
authorPetr Machata <pmachata@redhat.com>
Mon, 30 Nov 2009 12:32:48 +0000 (13:32 +0100)
committerPetr Machata <pmachata@redhat.com>
Wed, 18 Aug 2010 12:55:14 +0000 (14:55 +0200)
* .ii is for "interfaces".  Type _declarations_ go there.

src/Makefile.am
src/dwarflint/check_debug_abbrev.cc
src/dwarflint/check_debug_info.cc
src/dwarflint/check_debug_info.hh [new file with mode: 0644]
src/dwarflint/check_debug_info.ii [new file with mode: 0644]
src/dwarflint/check_debug_line.cc
src/dwarflint/check_debug_loc_range.cc
src/dwarflint/check_debug_loc_range.hh
src/dwarflint/check_expected_trees.cc
src/dwarflint/checks-low.cc
src/dwarflint/checks-low.hh

index 976af4948b3dda1074c0311197383867621ab060..b8fda98535af08676b5ef2b2a8b2c2432e6e642a 100644 (file)
@@ -97,7 +97,7 @@ dwarflint_SOURCES = dwarfstrings.c \
                    dwarflint/all-dies-it.hh \
                    dwarflint/check_highlevel.cc dwarflint/checks-high.hh \
                    dwarflint/check_debug_abbrev.cc \
-                   dwarflint/check_debug_info.cc \
+                   dwarflint/check_debug_info.cc dwarflint/check_debug_info.hh dwarflint/check_debug_info.ii \
                    dwarflint/check_debug_line.cc \
                    dwarflint/check_debug_loc_range.cc dwarflint/check_debug_loc_range.hh \
                    dwarflint/check_matching_ranges.cc \
index 68d3f2223bf8f818cd2fb4a5452aac930dfc4659..0c86264ae9c138873c433198b5fa07ba091912ad 100644 (file)
@@ -30,6 +30,7 @@
 #include "checks-low.hh"
 #include "pri.hh"
 #include "tables.hh"
+#include "check_debug_info.hh"
 
 #include <dwarf.h>
 #include <sstream>
index aba009a9bc32de374051f9c2bd301097ca80bf20..fae697984ade9cca9b87f086042458efbf08fe78 100644 (file)
 
 #include "messages.h"
 #include "low.h"
-#include "checks-low.hh"
 #include "pri.hh"
 #include "config.h"
 #include "check_debug_loc_range.hh"
+#include "check_debug_info.hh"
 
 namespace
 {
diff --git a/src/dwarflint/check_debug_info.hh b/src/dwarflint/check_debug_info.hh
new file mode 100644 (file)
index 0000000..5099b4d
--- /dev/null
@@ -0,0 +1,79 @@
+/* Checking of .debug_info
+   Copyright (C) 2009 Red Hat, Inc.
+   This file is part of Red Hat elfutils.
+
+   Red Hat elfutils is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by the
+   Free Software Foundation; version 2 of the License.
+
+   Red Hat elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with Red Hat elfutils; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
+
+   Red Hat elfutils is an included package of the Open Invention Network.
+   An included package of the Open Invention Network is a package for which
+   Open Invention Network licensees cross-license their patents.  No patent
+   license is granted, either expressly or impliedly, by designation as an
+   included package.  Should you wish to participate in the Open Invention
+   Network licensing program, please visit www.openinventionnetwork.com
+   <http://www.openinventionnetwork.com>.  */
+
+#ifndef DWARFLINT_CHECK_DEBUG_INFO_HH
+#define DWARFLINT_CHECK_DEBUG_INFO_HH
+
+#include "checks-low.hh"
+
+/** The pass for reading basic .debug_info data -- the layout of
+    sections and their headers.  */
+class read_cu_headers
+  : public check<read_cu_headers>
+{
+  section<sec_info> *_m_sec_info;
+
+public:
+  std::vector<cu_head> const cu_headers;
+  explicit read_cu_headers (dwarflint &lint);
+};
+
+class check_debug_info
+  : public check<check_debug_info>
+{
+  section<sec_info> *_m_sec_info;
+  section<sec_abbrev> *_m_sec_abbrev;
+  section<sec_str> *_m_sec_str;
+  check_debug_abbrev *_m_abbrevs;
+  read_cu_headers *_m_cu_headers;
+
+  // Abbreviation table with that offset had user(s) that failed
+  // validation.  Check for unused abbrevs should be skipped.
+  std::vector< ::Dwarf_Off> _m_abbr_skip;
+
+  bool check_cu_structural (struct elf_file *file,
+                           struct read_ctx *ctx,
+                           struct cu *const cu,
+                           Elf_Data *strings,
+                           struct coverage *strings_coverage,
+                           struct relocation_data *reloc,
+                           struct cu_coverage *cu_coverage);
+
+  void check_info_structural (elf_file *file,
+                             Elf_Data *strings);
+
+public:
+  // The check pass adds all low_pc/high_pc ranges loaded from DIE
+  // tree into this following cu_cov structure.  If it finds any
+  // rangeptr-class attributes, it sets cu_cov.need_ranges to true.
+  cu_coverage cu_cov;
+  std::vector<cu> cus;
+
+  explicit check_debug_info (dwarflint &lint);
+  ~check_debug_info ();
+};
+static reg<check_debug_info> reg_debug_info;
+
+#endif//DWARFLINT_CHECK_DEBUG_INFO_HH
diff --git a/src/dwarflint/check_debug_info.ii b/src/dwarflint/check_debug_info.ii
new file mode 100644 (file)
index 0000000..bd0ae5a
--- /dev/null
@@ -0,0 +1,2 @@
+class read_cu_headers;
+class check_debug_info;
index be8a67d5771a2854640fcd3918e460f1a48592d2..284ba02af2597fa91f5a78c336779feb8d55ee5a 100644 (file)
@@ -1,9 +1,10 @@
 #include "checks-low.hh"
+#include "check_debug_info.hh"
+#include "pri.hh"
 
 #include <dwarf.h>
 #include "../libdw/known-dwarf.h"
 #include "dwarfstrings.h"
-#include "pri.hh"
 
 #include <sstream>
 
@@ -58,7 +59,7 @@ namespace
            << " refers to directory #" << *ptr
            << ", which wasn't defined." << std::endl;
 
-         /* Consumer might choke on that.  */
+         /* Consumer might choke on that.  */
          retval = false;
        }
       else if (*ptr != 0)
index 1f07843e89d774744466d85e1d648e02c683fb75..8bc01e9aee965a2f3ead79674bc9ebdbb5aab9c6 100644 (file)
@@ -39,6 +39,7 @@
 #include "low.h"
 #include "config.h"
 #include "check_debug_loc_range.hh"
+#include "check_debug_info.hh"
 #include "dwarf-opcodes.h"
 #include "pri.hh"
 
index 893b553fc3a9af0ddc41b257f554a7cb0418022a..9a31c764b9010908b116d9f97b4a04d9675694d7 100644 (file)
@@ -25,6 +25,7 @@
    <http://www.openinventionnetwork.com>.  */
 
 #include "checks-low.hh"
+#include "check_debug_info.ii"
 
 class check_debug_ranges
   : public check<check_debug_ranges>
index f615371b2e531d17e2ef986f9906657ebb150aa1..3c385acd2c769edde9d1aeab44a3791bc0466282 100644 (file)
@@ -2,6 +2,7 @@
 # include <config.h>
 #endif
 
+#include "check_debug_info.hh"
 #include "checks-high.hh"
 #include "expected.hh"
 #include "dwarfstrings.h"
index 3db0b52dc59398ad552cf4c948f0393e1649a745..7c4d4b95e9e90e5b816ecf8ad4f59dbe8f62e5a7 100644 (file)
@@ -31,6 +31,7 @@
 #include "config.h"
 #include "pri.hh"
 #include "check_debug_loc_range.hh"
+#include "check_debug_info.hh"
 #include <map>
 #include <sstream>
 #include <cstring>
index 5a53c5e42c85ef23cbf943b26284897eedbc2678..030395e8ea2adf92e8687662520d3b0a80a75c03 100644 (file)
@@ -64,18 +64,6 @@ public:
   {}
 };
 
-/** The pass for reading basic .debug_info data -- the layout of
-    sections and their headers.  */
-class read_cu_headers
-  : public check<read_cu_headers>
-{
-  section<sec_info> *_m_sec_info;
-
-public:
-  std::vector<cu_head> const cu_headers;
-  explicit read_cu_headers (dwarflint &lint);
-};
-
 class check_debug_abbrev
   : public check<check_debug_abbrev>
 {
@@ -90,42 +78,6 @@ public:
 };
 static reg<check_debug_abbrev> reg_debug_abbrev;
 
-class check_debug_info
-  : public check<check_debug_info>
-{
-  section<sec_info> *_m_sec_info;
-  section<sec_abbrev> *_m_sec_abbrev;
-  section<sec_str> *_m_sec_str;
-  check_debug_abbrev *_m_abbrevs;
-  read_cu_headers *_m_cu_headers;
-
-  // Abbreviation table with that offset had user(s) that failed
-  // validation.  Check for unused abbrevs should be skipped.
-  std::vector< ::Dwarf_Off> _m_abbr_skip;
-
-  bool check_cu_structural (struct elf_file *file,
-                           struct read_ctx *ctx,
-                           struct cu *const cu,
-                           Elf_Data *strings,
-                           struct coverage *strings_coverage,
-                           struct relocation_data *reloc,
-                           struct cu_coverage *cu_coverage);
-
-  struct cu *check_info_structural (elf_file *file,
-                                   Elf_Data *strings);
-
-public:
-  // The check pass adds all low_pc/high_pc ranges loaded from DIE
-  // tree into this following cu_cov structure.  If it finds any
-  // rangeptr-class attributes, it sets cu_cov.need_ranges to true.
-  cu_coverage cu_cov;
-  std::vector<cu> cus;
-
-  explicit check_debug_info (dwarflint &lint);
-  ~check_debug_info ();
-};
-static reg<check_debug_info> reg_debug_info;
-
 class check_debug_aranges
   : public check<check_debug_aranges>
 {