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@citrix.com>
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@lists.xensource.com
http://lists.xensource.com/xen-devel