wukenaihe / google-breakpad

Automatically exported from code.google.com/p/google-breakpad
0 stars 0 forks source link

Provide a mechanism for SymbolSuppliers to interrupt processing #93

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
We need to add a way for a SymbolSupplier to stop a minidump from being
processed.  We can use this for transient errors, such as when a symbol
file isn't present in the symbol store, but it may show up later.

Original issue reported on code.google.com by mmento...@gmail.com on 7 Dec 2006 at 9:16

GoogleCodeExporter commented 9 years ago
This patch adds the ability for SymbolSupplier::GetSymbolFile to interrupt
processing.  The interrupt status is returned back to the caller of
MinidumpProcessor::Process() as a boolean.

Original comment by bry...@gmail.com on 7 Dec 2006 at 10:30

Attachments:

GoogleCodeExporter commented 9 years ago
with review comments addressed

Original comment by bry...@gmail.com on 7 Dec 2006 at 11:43

Attachments:

GoogleCodeExporter commented 9 years ago
oops, use this one.

Original comment by bry...@gmail.com on 7 Dec 2006 at 11:44

Attachments:

GoogleCodeExporter commented 9 years ago
What are the semantics of this, does "interrupt" mean "try again later"?  Would 
we
use this if we had a SymbolSupplier that could fetch symbols from the internet 
somewhere?

Original comment by ted.mielczarek on 8 Dec 2006 at 3:32

GoogleCodeExporter commented 9 years ago
You can use INTERRUPT for whatever reason you might want the SymbolSupplier to 
stop
processing for.  We envision that a SymbolSupplier implementation that doesn't 
have a
symbol file readily available could return INTERRUPT and add the missing symbol 
file
to a list, from which symbol files are fetched from an outside location 
periodically.
 That way, you'd be able to get symbols from outside locations without forcing your
processor to block.  We had Microsoft's public symbol server in mind for this.

Brian checked this in revision [80].

Original comment by mmento...@gmail.com on 8 Dec 2006 at 8:55

GoogleCodeExporter commented 9 years ago
Hm.  The only thing I don't like about that is that if we INTERRUPT on the first
unavailable symbol, you'd only be able to queue up one missing symbol file per 
pass.
 If the minidump has N missing symbol files, you'd have to attempt to process it N
times to know to download all of them.  I think what you'd really want to do is
iterate through all the modules, and let the symbol supplier look for all of 
them,
and then if it has some missing symbols the processing can stop.  I don't know 
if
that's feasible with what bryner implemented here, or if it would require some 
changes.

Original comment by ted.mielczarek on 11 Dec 2006 at 7:05