/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/crash.py

  • Committer: John Arbash Meinel
  • Date: 2011-03-15 10:28:20 UTC
  • mto: This revision was merged to the branch mainline in revision 5725.
  • Revision ID: john@arbash-meinel.com-20110315102820-51wy8wjre5ol34mu
'bzr export' needs to use 'exact' encoding.

If we are going to be writing binary bites out of stdout, then it needs to
be in binary mode, or it will corrupt the data stream.
Oddly enough, it only seemed to fail if we set '--verbose'. I didn't
bother to track into that bug.

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
173
174
    pr['Package'] = 'bzr'
174
175
 
175
176
    # tell apport to file directly against the bzr package using 
176
 
    # <https://bugs.edge.launchpad.net/bzr/+bug/391015>
 
177
    # <https://bugs.launchpad.net/bzr/+bug/391015>
177
178
    #
178
179
    # XXX: unfortunately apport may crash later if the crashdb definition
179
180
    # file isn't present
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():