Open Bug 637665 Opened 9 years ago Updated 9 years ago

STACK CFI entries repeated in symbols files

Categories

(Toolkit :: Crash Reporting, defect)

All
Linux
defect
Not set

Tracking

()

People

(Reporter: glandium, Unassigned)

Details

When running minidump_stack, one can see a lot of log entries like:
range_map-inl.h:91: INFO: StoreRange failed, an existing range contains or extends higher than the new range: new 0x222440+0x2, existing 0x222440+0x2

Apparently, this is due to a lot of STACK CFI entries being repeated in the .sym files.
For example, taking the last nightly libxul.so.sym:
http://symbols.mozilla.org/firefox/libxul.so/65C7FFCA13C8DFD82F235C4BAA965EB30/libxul.so.sym
$ grep ^STACK libxul.so.sym  | sort | uniq -c | sort -n | awk '{print $1}' | uniq -c | tail -10
      1 133
     14 138
      3 139
     37 156
      1 192
      1 262
      1 275
     17 430
      1 434
     16 467

This awful command line displays the number (#1) of single lines that are repeated #2 times.
e.g. the last line reads: 16 lines are repeated 467 times.
(Seems like a pretty great command line to me!)

I'd like to know how this stuff gets in there in the first place, but the fix seems pretty clear: change stack_frame_entries_ from a vector to a set, with a comparison operator on StackFrameEntry that compares the initial_rules and rule_changes members as well as the addresses and sizes.

If we have different entries for the same address range, that will still get complaints from range_map-inl.h, but it'll be a genuinely interesting problem.
You need to log in before you can comment on or make changes to this bug.