~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/crash.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2011-02-07 04:51:19 UTC
  • mfrom: (5641.2.1 bzr-dev-overview-tweaks)
  • Revision ID: pqm@pqm.ubuntu.com-20110207045119-fn3s8bol0zscqr1p
(spiv) Expand doc/developers/overview.txt a little,
 and fix some formatting nits. (Andrew Bennetts)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2009, 2010 Canonical Ltd
 
1
# Copyright (C) 2009, 2010, 2011 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
20
20
A crash is an exception propagated up almost to the top level of Bazaar.
21
21
 
22
22
If we have apport <https://launchpad.net/apport/>, we store a report of the
23
 
crash using apport into it's /var/crash spool directory, from where the user
 
23
crash using apport into its /var/crash spool directory, from where the user
24
24
can either manually send it to Launchpad.  In some cases (at least Ubuntu
25
25
development releases), Apport may pop up a window asking if they want
26
26
to send it.
143
143
    exc_type, exc_object, exc_tb = exc_info
144
144
 
145
145
    pr = Report()
146
 
    # add_proc_info gives you the memory map of the process, which is not so
147
 
    # useful for Bazaar but does tell you what binary libraries are loaded.
148
 
    # More importantly it sets the ExecutablePath, InterpreterPath, etc.
 
146
    # add_proc_info sets the ExecutablePath, InterpreterPath, etc.
149
147
    pr.add_proc_info()
 
148
    # It also adds ProcMaps which for us is rarely useful and mostly noise, so
 
149
    # let's remove it.
 
150
    del pr['ProcMaps']
150
151
    pr.add_user_info()
151
152
 
152
153
    # Package and SourcePackage are needed so that apport will report about even
254
255
 
255
256
 
256
257
def _format_plugin_list():
257
 
    plugin_lines = []
258
 
    for name, a_plugin in sorted(plugin.plugins().items()):
259
 
        plugin_lines.append("  %-20s %s [%s]" %
260
 
            (name, a_plugin.path(), a_plugin.__version__))
261
 
    return '\n'.join(plugin_lines)
 
258
    return ''.join(plugin.describe_plugins(show_paths=True))
262
259
 
263
260
 
264
261
def _format_module_list():