From 1333d2235701a82cff7d105d096b216c172d78e1 Mon Sep 17 00:00:00 2001 From: Artem Bityutskiy Date: Thu, 21 Feb 2013 11:56:25 +0200 Subject: [PATCH] bmaptool: print useful information in sace of MemoryError Catch the MemoryError exception which means that the script ran out of memory and print useful debugging information in this case (/proc/meminfo and /proc/self/status). Change-Id: Ie52b8426867366d5a5110f91f8731c8c9b3b7f54 Signed-off-by: Artem Bityutskiy --- bmaptool | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/bmaptool b/bmaptool index 90cb0ec..308a7f5 100755 --- a/bmaptool +++ b/bmaptool @@ -40,6 +40,7 @@ import os import stat import time import logging +import traceback from bmaptools import BmapCreate, BmapCopy, BmapHelpers, TransRead def copy_command_open_blkdev(path, log): @@ -366,7 +367,23 @@ def main(): else: loglevel = logging.INFO - args.func(args, setup_logger(loglevel)) + log = setup_logger(loglevel) + + try: + args.func(args, log) + except MemoryError: + log.error("Out of memory!") + traceback.print_exc() + + log.info("The contents of /proc/meminfo:") + with open('/proc/meminfo', 'rt') as file_obj: + for line in file_obj: + print line, + + log.info("The contents of /proc/self/status:") + with open('/proc/self/status', 'rt') as file_obj: + for line in file_obj: + print line, if __name__ == "__main__": sys.exit(main()) -- 2.7.4