fixes in readelf. added --debug-dump=info to the tests
diff --git a/scripts/readelf.py b/scripts/readelf.py
index 2de7cb6..8a76c6f 100755
--- a/scripts/readelf.py
+++ b/scripts/readelf.py
@@ -536,6 +536,7 @@
                 if die.has_children:
                     die_depth += 1
                     
+        self._emitline()
 
     def _emit(self, s=''):
         """ Emit an object to output
diff --git a/tests/run_readelf_tests.py b/tests/run_readelf_tests.py
index 27a2bf4..9142c1d 100755
--- a/tests/run_readelf_tests.py
+++ b/tests/run_readelf_tests.py
@@ -8,6 +8,7 @@
 # This code is in the public domain
 #-------------------------------------------------------------------------------
 import os, sys
+import re
 from difflib import SequenceMatcher
 import logging
 import subprocess
@@ -49,7 +50,9 @@
     """
     success = True
     testlog.info("Running test on file '%s'" % filename)
-    for option in ['-e', '-s', '-r', '-x.text', '-p.shstrtab']:
+    for option in [
+            '-e', '-s', '-r', '-x.text', '-p.shstrtab',
+            '--debug-dump=info']:
         testlog.info("..option='%s'" % option)
         # stdouts will be a 2-element list: output of readelf and output 
         # of scripts/readelf.py
@@ -104,14 +107,26 @@
         if lines1[i].split() != lines2[i].split():
             sm = SequenceMatcher()
             sm.set_seqs(lines1[i], lines2[i])
+            changes = sm.get_opcodes()
             if flag_after_symtable:
                 # Detect readelf's adding @ with lib and version after 
                 # symbol name.
-                changes = sm.get_opcodes()
                 if (    len(changes) == 2 and changes[1][0] == 'delete' and
                         lines1[i][changes[1][1]] == '@'):
                     continue
+            elif 'dw_op' in lines1[i] and 'reg' in lines1[i]:
+                # readelf decodes register names, we don't do that.
+                no_worries = False
+                for change in changes:
+                    if (    change[0] == 'delete' and
+                            re.search('\(\w+', lines1[i][change[1]:change[2]])):
+                        no_worries = True
+                if no_worries:
+                    continue
 
+            else:
+                print changes
+                print lines1[i][changes[3][1]:changes[3][2]]
             errmsg = 'Mismatch on line #%s:\n>>%s<<\n>>%s<<\n' % (
                     i, lines1[i], lines2[i])
             return False, errmsg