diff options
author | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-08-22 15:47:16 +0100 |
---|---|---|
committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-08-22 15:47:16 +0100 |
commit | 25335618bf8755ce6b116ee14f47f5a1f2c821e9 (patch) | |
tree | d889d7ab3f9f985d0c54c534cb8052bd2e6d7163 /bzrlib/debug.py | |
download | bzr-tarball-25335618bf8755ce6b116ee14f47f5a1f2c821e9.tar.gz |
Tarball conversion
Diffstat (limited to 'bzrlib/debug.py')
-rw-r--r-- | bzrlib/debug.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/bzrlib/debug.py b/bzrlib/debug.py new file mode 100644 index 0000000..cca8956 --- /dev/null +++ b/bzrlib/debug.py @@ -0,0 +1,59 @@ +# Copyright (C) 2005, 2006, 2009 Canonical Ltd +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +"""Set of flags that enable different debug behaviour. + +These are set with eg ``-Dlock`` on the bzr command line or in +~/.bazaar/bazaar.conf debug_flags. + +See `bzr help debug-flags` or `bzrlib/help_topics/en/debug-flags.txt` +for a list of the available options. +""" + +from __future__ import absolute_import + +debug_flags = set() + + +def set_debug_flags_from_config(): + """Turn on debug flags based on the global configuration""" + + from bzrlib import config + + c = config.GlobalStack() + for f in c.get('debug_flags'): + debug_flags.add(f) + + +def set_trace(): + """Pdb using original stdin and stdout. + + When debugging blackbox tests, sys.stdin and sys.stdout are captured for + test purposes and cannot be used for interactive debugging. This class uses + the origianl stdin/stdout to allow such use. + + Instead of doing: + + import pdb; pdb.set_trace() + + you can do: + + from bzrlib import debug; debug.set_trace() + """ + import pdb + import sys + pdb.Pdb(stdin=sys.__stdin__, stdout=sys.__stdout__ + ).set_trace(sys._getframe().f_back) |