[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] pygrub: add debug flag



On Fri, 2011-10-07 at 09:45 +0100, Guido GÃnther wrote:
> Debugging config file errors is tedious so help a bit by not silently
> dropping parsing exceptions when --debug is given. Also intialize the
> logging API at debug level in this case.

This looks fine but requires a Signed-off-line, per the DCO
http://wiki.xen.org/xenwiki/SubmittingXenPatches

Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

BTW another useful but not widely known debug feature is that you can
run {Grub,ExtLinux}Conf.py directly passing a config file as a parameter
and they will print out what they parse from it, or the errors as
appropriate.

Ian.

> Cheers,
>  -- Guido
> 
> ---
>  tools/pygrub/src/pygrub |   12 ++++++++++--
>  1 files changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/pygrub/src/pygrub b/tools/pygrub/src/pygrub
> index 52b1823..5dc9405 100644
> --- a/tools/pygrub/src/pygrub
> +++ b/tools/pygrub/src/pygrub
> @@ -13,7 +13,7 @@
>  # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
>  #
>  
> -import os, sys, string, struct, tempfile, re
> +import os, sys, string, struct, tempfile, re, traceback
>  import copy
>  import logging
>  import platform
> @@ -665,7 +665,7 @@ if __name__ == "__main__":
>                                     ["quiet", "interactive", "not-really", 
> "help", 
>                                      "output=", "output-format=", 
> "output-directory=",
>                                      "entry=", "kernel=", 
> -                                    "ramdisk=", "args=", "isconfig"])
> +                                    "ramdisk=", "args=", "isconfig", 
> "debug"])
>      except getopt.GetoptError:
>          usage()
>          sys.exit(1)
> @@ -679,6 +679,7 @@ if __name__ == "__main__":
>      entry = None
>      interactive = True
>      isconfig = False
> +    debug = False
>      not_really = False
>      output_format = "sxp"
>      output_directory = "/var/run/xend/boot"
> @@ -714,6 +715,8 @@ if __name__ == "__main__":
>              interactive = False
>          elif o in ("--isconfig",):
>              isconfig = True
> +        elif o in ("--debug",):
> +            debug = True
>          elif o in ("--output-format",):
>              if a not in ["sxp", "simple", "simple0"]:
>                  print "unkonwn output format %s" % a
> @@ -723,6 +726,9 @@ if __name__ == "__main__":
>          elif o in ("--output-directory",):
>              output_directory = a
>  
> +    if debug:
> +     logging.basicConfig(level=logging.DEBUG)
> +
>      if output is None or output == "-":
>          fd = sys.stdout.fileno()
>      else:
> @@ -769,6 +775,8 @@ if __name__ == "__main__":
>          except:
>              # IOErrors raised by fsimage.open
>              # RuntimeErrors raised by run_grub if no menu.lst present
> +            if debug:
> +             traceback.print_exc()
>              fs = None
>              continue
>  



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.