Closed Bug 637889 Opened 14 years ago Closed 8 years ago

Allow for aliasing or renaming frames in signatures

Categories

(Socorro :: General, task)

x86
macOS
task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: alqahira, Unassigned)

Details

In bug 636467, timeless wanted a certain Win crash frame to be renamed/mapped to a shorter, more useful frame name for better crash-signature generation: google_breakpad::ExceptionHandler::HandlePureVirtualCall() --> _purecall This ability would also be very useful on Mac OS X, where, with the myriad of "versions" of the same system dylibs from the same OS build produce different module IDs, which means that many times OS library and framework frames end up unresymbolized even when we know what they are. Adding this would allow us to coalesce the most common of these unresymbolized frames with their resymbolized equivalents, providing more accurate crashes-by-signature counts. (Note that, at least on Mac OS X, we'd want to limit the mappings to at least major OS versions, given the functions move around within the binaries between major releases: only map libobjc.A.dylib@0x15668 to objc_msgSend on 10.4 and only map libobjc.A.dylib@0x05edb to objc_msgSend on 10.6, etc.)
This would be implemented in the normalize_signature method of the SignatureUtilities class. The normalization is applied before any of the other signature generation rules. That way an alias may participate in the 'ignore...', 'sentinel...' and 'prefix...' signature generation rules. Aliases could be defined in the processor configuration as a dict of key/value pairs or as a list of 2-tuples. The key would be the name of the alias while the value would be a regular expression that defines which real frame signatures get aliased. an abbreviated example: signatureAliases = { '_purecall': r'google_breakpad::.*Pure.*', 'bare_address': '0x.*' } there could even be some substitution parameters to pull capture groups from the regular expression into the alias: 'bare_address:$0': '0x.*' which, when given "0xFFFF" would emit "bare_address:0xFFFF" It might be a good thing to have the system also mark aliases in some way so that it is understood at a glance that frame signature has been altered. Like the other signature generation rules that use configuration parameters, a web front end should exist for administration of this feature.
Component: Socorro → General
Product: Webtools → Socorro
we could implement these as transform rules. file news bugs with specifics.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.