From: Marc Abramowitz Date: Sat, 12 Oct 2013 17:17:35 +0000 (-0700) Subject: Cython/Debugger/Cygdb.py: Add debug logging with `logging` module X-Git-Tag: 0.20b1~282^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dca9af1e1973ea8f310567c07cc35a9eccf39731;p=platform%2Fupstream%2Fpython-cython.git Cython/Debugger/Cygdb.py: Add debug logging with `logging` module --- diff --git a/Cython/Debugger/Cygdb.py b/Cython/Debugger/Cygdb.py index 54577eb..8b7a937 100644 --- a/Cython/Debugger/Cygdb.py +++ b/Cython/Debugger/Cygdb.py @@ -18,6 +18,9 @@ import tempfile import textwrap import subprocess import optparse +import logging + +logger = logging.getLogger(__name__) def make_command_file(path_to_debug_info, prefix_code='', no_import=False): if not no_import: @@ -78,6 +81,9 @@ def main(path_to_debug_info=None, gdb_argv=None, no_import=False): parser.add_option("--gdb-executable", dest="gdb", default='gdb', help="gdb executable to use [default: gdb]") + parser.add_option("--verbose", "-v", + dest="verbosity", action="count", default=0, + help="Verbose mode. Multiple -v options increase the verbosity") (options, args) = parser.parse_args() if path_to_debug_info is None: @@ -92,13 +98,34 @@ def main(path_to_debug_info=None, gdb_argv=None, no_import=False): if path_to_debug_info == '--': no_import = True + logging_level = logging.WARN + if options.verbosity == 1: + logging_level = logging.INFO + if options.verbosity == 2: + logging_level = logging.DEBUG + logging.basicConfig(level=logging_level) + + logger.info("verbosity = %r", options.verbosity) + logger.debug("options = %r; args = %r", options, args) + logger.debug("Done parsing command-line options. path_to_debug_info = %r, gdb_argv = %r", + path_to_debug_info, gdb_argv) + tempfilename = make_command_file(path_to_debug_info, no_import=no_import) + logger.info("Launching %s with command file: %s and gdb_argv: %s", + options.gdb, tempfilename, gdb_argv) + logger.debug('Command file (%s) contains: """\n%s"""', tempfilename, open(tempfilename).read()) + logger.info("Spawning %s...", options.gdb) p = subprocess.Popen([options.gdb, '-command', tempfilename] + gdb_argv) + logger.info("Spawned %s (pid %d)", options.gdb, p.pid) while True: try: - p.wait() + logger.debug("Waiting for gdb (pid %d) to exit...", p.pid) + ret = p.wait() + logger.debug("Wait for gdb (pid %d) to exit is done. Returned: %r", p.pid, ret) except KeyboardInterrupt: pass else: break + logger.debug("Removing temp command file: %s", tempfilename) os.remove(tempfilename) + logger.debug("Removed temp command file: %s", tempfilename)