gecko-dev/tools
Julian Seward 7eda9d1a96 Bug 1374248 - LUL: remove stack scanning. r=njn.
This removes LUL's ability to recover frames by the heuristic mechanism of
stack scanning.  Stack scanning is a last-ditch way to try to recover the
unwind when all other methods (metadata-based, frame-pointer chasing) have
failed, by scanning back up the stack and looking for the first word that
could plausibly be a return address.  It often mis-identifies return addresses
because it has no way to distinguish live ones from dead ones that have not
been overwritten, and very often causes the unwind to fail as a result.

In any case LUL's stack scanning ability has actually been switched off (by
the parameters passed to LUL::Unwind) for some considerable time now, so this
change should make no observable difference to behaviour.  Specific changes:

In LUL::Unwind():

* Removes formal parameters |scannedFramesAcquired| and |scannedFramesAllowed|

* Removes code that does stack scanning

* Simplifies control flow in the main unwind loop, so that loop now
  has the easier-to-follow structure

  while (true) {
    // preliminary stuff

    if (CFI data available for current PC) {
       do CFI step;
       continue;
    }

    if (FP chasing possible for current PC) {
       do FP step;
       continue;
    }

    // give up
    break;
  }

* Moves two #ifdefs upwards to enclose the comments pertaining to them, as
  well as the code.  This makes the top level structure easier to follow.  The
  corresponding #endifs are likewise commented with the condition.

From class LULStats, removes |mScanned|.

Removes PriMap::MaybeIsReturnPoint() entirely.  This is a heuristic helper
only used by stack scanning.

In all, 395 lines of code are removed, according to hg diff --stat.

--HG--
extra : rebase_source : 5ffa73c64923149a58df3228cf940cb539f8f707
2017-06-19 16:21:59 +02:00
..
bloatview
compare-locales bug 1370176, generic configuration for l10n, r=flod,gps 2017-06-05 10:28:33 +02:00
coverity Bug 1359376 - Update Coverity modeling file to support NS_RUNTIMEABORT. r=sylvestre 2017-04-25 15:08:48 +03:00
docs
fuzzing Bug 1232119 - Add fuzzer for SharedMemory. r=billm 2017-05-23 22:36:28 +02:00
git Bug 1360595 - Add a git pre-commit hook for running ESLint. r=mossop 2017-04-28 12:19:15 +01:00
jprof
leak-gauge Bug 1360293 - Enable the Mozilla ESlint recommended rules for tools/. r=jryans 2017-05-01 11:38:39 +01:00
lint Bug 1370225 - Enabled the ESLint comma-style rule across mozilla-central. r=standard8 2017-06-15 18:24:17 +01:00
memory-profiler Bug 1358320 - Make TimeStamp::ProcessCreation()'s outparam optional. r=gsvelto. 2017-04-26 14:55:54 +10:00
mercurial Bug 1360595 - Add a git pre-commit hook for running ESLint. r=mossop 2017-04-28 12:19:15 +01:00
power
profiler Bug 1374248 - LUL: remove stack scanning. r=njn. 2017-06-19 16:21:59 +02:00
quitter Bug 1360293 - Enable the Mozilla ESlint recommended rules for tools/. r=jryans 2017-05-01 11:38:39 +01:00
rb
rewriting Bug 1374000 - Add woff2 to the list of thirdparty code r=andi 2017-06-18 00:24:03 +02:00
update-packaging
mach_commands.py Bug 1293493 - Remove `mach rage` since it was unused; r=ted 2017-04-24 16:33:51 -07:00
moz.build Bug 1346025 - Move 'python/compare-locales' documentation and mach command to 'tools/compare-locales', r=Pike 2017-06-06 10:00:51 -04:00