Граф коммитов

101 Коммитов

Автор SHA1 Сообщение Дата
Nicholas Nethercote 9a11249061 Bug 1621468 - Stop using `fix_stack_using_bpsyms.py` in `dmd.py`. r=gsvelto
This uses `fix-stacks`'s new Breakpad symbols support from
https://github.com/mozilla/fix-stacks/pull/16.

The patch also updates some comments in `dmd.py` to account for some very
slight changes in `fix-stacks`'s output.

Differential Revision: https://phabricator.services.mozilla.com/D66363

--HG--
extra : moz-landing-system : lando
2020-03-16 01:15:27 +00:00
Nicholas Nethercote d17a9a9a55 Bug 1602717 - Re-enable stackwalking on local macOS builds. r=erahm
Now that `fix_stacks.py` is being used instead of `fix_macosx_stack.py`,
stack-fixing time has dropped from about 14 minutes to about 30 seconds on my
new MacBook Pro.

Also, print a warning about stacks not being fixed if `MOZ_DISABLE_STACK_FIX`
is set. This warning shows up at the start of the test run.

Also, print a warning about stack fixing slowness, because 30 seconds is long
enough to possibly be surprising. This warning shows up just before the first
stack frame is fixed, like this:
```
Assertion failure: false (BEEP BOOP), at /home/njn/moz/au3/dom/base/nsGlobalWindowOuter.cpp:1342
Initializing stack-fixing for the first stack frame, this may take a while...
#01: nsGlobalWindowOuter::nsGlobalWindowOuter(unsigned long) (/home/njn/moz/au3/dom/base/nsGlobalWindowOuter.cpp:1342)
#02: ...
```

Differential Revision: https://phabricator.services.mozilla.com/D65676

--HG--
extra : moz-landing-system : lando
2020-03-12 22:03:19 +00:00
Nicholas Nethercote 821fa0d573 Bug 1619837 - Make `fix_stacks.py` more like `fix_linux_stacks.py`. r=erahm
Specifically:
- handle input that doesn't end in a newline;
- only pass lines that match the regexp to `fix-stacks`.

These changes are needed for `utils.py` to use `fix_stacks.py` without
problems.

Differential Revision: https://phabricator.services.mozilla.com/D65944

--HG--
extra : moz-landing-system : lando
2020-03-10 06:19:21 +00:00
Nicholas Nethercote c22c891c55 Bug 1604095 - Add `fix_stacks.py`, which uses `fix-stacks`, and use it in DMD. r=gsvelto
On Linux and Mac, this makes `dmd.py` *much* faster when it is first run on a
DMD data file.

On Windows, this makes DMD actually usable locally. Previously the stacks
weren't fixed and so were rubbish.

Differential Revision: https://phabricator.services.mozilla.com/D57271

--HG--
extra : moz-landing-system : lando
2020-03-05 00:24:23 +00:00
Edwin Takahashi af0fda47bc Bug 1559977 - Remove tools/rb from py3/py2 linter exclusion list r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D35238

--HG--
extra : moz-landing-system : lando
2019-10-15 20:58:35 +00:00
Andrew Halberstadt 898dfb96b4 Bug 1567642 - [lint.flake8] Fix misc flake8 under Python 3 lint issues r=gbrown
Differential Revision: https://phabricator.services.mozilla.com/D45417

--HG--
extra : moz-landing-system : lando
2019-09-24 14:44:01 +00:00
Nicholas Nethercote 953ed1dcc1 Bug 1499907 - Add a `jsonEscape` argument to `fixSymbols`. r=erahm
So that dmd.py isn't broken by function names that, after stack fixing, contain
escape-worthy chars such as " and /.

--HG--
extra : rebase_source : 625cef56e4599bbb810273ef04af2b971e777b58
2018-11-21 10:28:00 +11:00
Gabriele Svelto 1b38644136 Bug 1493365 - Reduce the amount of memory consumed when reading symbol files r=ted
When reworking the script each entry holding a function name was replaced by a
dictionary holding both the function name and its size. This significantly
increased memory consumption as using a full-fledged dictionary for only two
fields is very space inefficient. This patch uses a named tuple instead of a
dictionary for every entry, reducing memory consumption by almost four times.

Differential Revision: https://phabricator.services.mozilla.com/D6603

--HG--
extra : moz-landing-system : lando
2018-09-24 20:43:37 +00:00
Gabriele Svelto e9f4d4c3af Bug 1470223 - Prefer FUNC entries to PUBLIC entries when fixing symbols r=ted
This patch changes the way we search symbols when fixing up a stack.
Previously we would find the closest PUBLIC or FUNC entry lower than a given
address. Because of how symbol files were processed we preferred PUBLIC
entries to FUNC ones. Now we look first for the function that contains the
address (obtained from the FUNC entries) then if none is available we look for
the closest, lower PUBLIC entry.

Differential Revision: https://phabricator.services.mozilla.com/D5033

--HG--
extra : moz-landing-system : lando
2018-09-21 12:50:32 +00:00
Gabriele Svelto b0e9d95a41 Bug 1309172 - Updated breakpad to version 69c2c51dd89965d234eec16e3a9353634831916b; r=ted.mielczarek
This includes both the vanilla sources we haven't forked and the client
sources that we have. Client patches were applied manually up to version
69c2c51dd89965d234eec16e3a9353634831916b. The following changes were not
included as they break merging segments corresponding to libxul.so in the
module list:

8915f7be39448d9257b6da3ad0233944d1d9a92a
17ad0c18b179c135fc5a3d2bba199c3fa4276035
94b6309aecaddfcf11672f6cfad9575d68ad3b40

With these changes applied two entries for libxul.so are generated, the second
one is bogus and prevents symbolication from working correctly.

The build system and some of the tools relying on breakpad were also updated
to work with the new version.

--HG--
extra : source : fe4d49307f8890a0c430c257c96f74a9552eeb31
extra : histedit_source : bc84861445bd93856cd0d0c864fd15ad7d9ccc12%2C1efd65797da46e33481afa61a302098780b0f107
2018-06-19 13:47:13 +02:00
Sylvestre Ledru a0ab39f145 Bug 1438839 - Fix the remaining flake8 issues by hand r=ahal
MozReview-Commit-ID: Fv1MZIpCL8Z

--HG--
extra : rebase_source : 804567a78a5696997e2aa511814a4f8ff22d9c31
extra : histedit_source : 88401e831d81708b6ed6122666ba9fa8c1de23d5
2018-03-15 11:34:03 +01:00
Sylvestre Ledru ef5ad1811f Bug 1438839 - autopep8 -i --max-line-length 99 on the tools/ r=ahal
MozReview-Commit-ID: KSKbctxjxl0

--HG--
extra : rebase_source : feebd58ff005750face884035f85a55e0ff638c8
extra : histedit_source : 5d7464caeb41bad25bc99d3b2e32ea5285464499
2018-03-15 11:32:42 +01:00
Nicholas Nethercote b7e4754837 Bug 1331310 - Remove unbufferedLineConverter in fix_linux_stacks.py. r=glandium.
subprocess.Popen is much simpler. Also, addr2line's stderr is now ignored,
which avoids some intermittent problems with DMD output.
2017-01-18 13:57:39 +11:00
Ralph Giles abf915d42c Bug 1275630 - Update breakpad documentation links. r=ted
These locations have changed since the end of Google Code.

MozReview-Commit-ID: FSGhFBDaTCq

--HG--
extra : rebase_source : 4ef004b2d0b8f1a6331db0f44ccf70d05ad62774
2016-05-25 10:01:52 -07:00
Ralph Giles f123b681bb Bug 1270091 - Handle missing function names. r=dminor
If the symbols file doesn't give a function name, substitute
'unnamed_function'. A more complete fix would be to catch
all ValueError exceptions and continue sensibly, but this
addresses the immediate issue with the output from `rustc -g`.

MozReview-Commit-ID: 666ruvLlJ5t
2016-05-10 16:15:17 -07:00
Henry Chang 3ca7032d96 Bug 1270002 - Use sliced array to ignore trailing tokens. r=mccr8 2016-05-04 00:17:00 -04:00
Chris Manchester 7c92933074 Bug 1216681 - Add a windows version of fileid to extract a guid from windows binaries. r=jimm,ted
This patch introduces a small utility program to extract a guid from a shared library
or executable on windows to identify the correct symbol file to read in fix_stack_using_bpsyms.py.
In order for this to work correctly on windows, the library name provided by
MozDescribeCodeAddress needs to be a full path, so the LoadedImageName field
from the IMAGEHLP_MODULE64 structure is used here instead of the ModuleName
field.

MozReview-Commit-ID: 8zkfLWjKVs2
2015-10-29 13:25:03 -07:00
Phil Ringnalda d7b348b2df Back out ff446e81eaf5 (bug 1216681) for Linux PGO bustage
CLOSED TREE
2016-02-11 20:27:36 -08:00
Chris Manchester 89842ddcd7 Bug 1216681 - Add a windows version of fileid to extract a guid from windows binaries. r=jimm,ted
This patch introduces a small utility program to extract a guid from a shared library
or executable on windows to identify the correct symbol file to read in fix_stack_using_bpsyms.py.
In order for this to work correctly on windows, the library name provided by
MozDescribeCodeAddress needs to be a full path, so the LoadedImageName field
from the IMAGEHLP_MODULE64 structure is used here instead of the ModuleName
field.

--HG--
extra : commitid : GwkhBdm81g3
2015-10-29 13:25:03 -07:00
Chris Manchester 58d5a05e65 Bug 1216681 - Add a fileid utility to extract the breakpad GUID from object files for identification in fix_stack_using_bpsyms. r=ted
fix_stack_using_bpsyms.py locates a .sym file based on file name only, not uuid or full path,
which causes a failure if a duplicate leaf file name is introduced. This patch introduces a
small utility program on mac and linux to extract a breakpad guid from a shared library or
executable to identify the correct symbol file when this ambiguity occurs. A subsequent commit
implements this for windows.

--HG--
extra : commitid : 2O7REfHuDus
2015-10-21 16:37:42 -07:00
Aidin Gharibnavaz 17b4bfd61a Bug 1190466 - tools/rb/find-leakers.pl re-written in Python r=mccr8 2015-08-20 14:18:20 -07:00
Nicholas Nethercote 8c93740f4f Bug 1089441 - Update the refcount-balancer docs link. r=dbaron.
DONTBUILD because NPOTB.

--HG--
extra : rebase_source : 7e415ac8fd4f028f0cb56f9c5b3949a65a68849e
2014-11-13 14:02:21 -08:00
Nicholas Nethercote 8ca4786797 Bug 1089441 - Move bloattable.pl and bloatdiff.pl into tools/bloatview/. r=dbaron.
DONTBUILD because NPOTB.

--HG--
rename : tools/rb/bloatdiff.pl => tools/bloatview/bloatdiff.pl
rename : tools/memory/bloattable.pl => tools/bloatview/bloattable.pl
extra : rebase_source : cc067b5c5db4b5975629d7ade384f964302f0ee4
2014-11-13 14:02:11 -08:00
L. David Baron 87f3b1c183 Bug 914253 patch 10 - Two more comment tweaks. No review.
DONTBUILD
2014-10-15 14:50:58 -07:00
Nicholas Nethercote 94adb30f77 Bug 1062709 (part 2, attempt 2) - Clean up stack printing and fixing. r=dbaron.
--HG--
extra : rebase_source : 626fd23a14ec90cfc9807c3d555169ec6463d19d
2014-09-01 22:56:05 -07:00
Ed Morley 9e223d8a19 Backed out changeset 7a1b7d7eba12 (bug 1062709) 2014-10-03 15:05:26 +01:00
Nicholas Nethercote 5a257b83f9 Bug 1062709 (part 2) - Clean up stack printing and fixing. r=dbaron.
--HG--
extra : rebase_source : 18158d4474cb8826813a3866eba57b710e14db99
2014-09-01 22:56:05 -07:00
Nicholas Nethercote 2a6091aa99 Bug 1062689 - Run local mochitest and reftest output through fix_macosx_stack.py on Mac. r=ted. 2014-09-04 22:19:42 -07:00
Nicholas Nethercote ab2d367e37 Bug 1050601 - Remove fix-linux-stack.pl. r=ted.
--HG--
extra : rebase_source : f344aa5db9e16575835a7de3df34c311635c128b
2014-09-03 09:24:38 -07:00
L. David Baron 9ace968019 Bug 914253 patch 10 - Revert inadvertent change from previous commit. No review. DONTBUILD 2014-08-06 19:23:54 -07:00
L. David Baron 4771b1591a Bug 914253 patch 9 - Implement CRC checking for .gnu_debuglink section. No review.
This is needed to avoid regressions relative to the perl version because
the perl version failed, due to a missing /, to properly examine two of
the paths, one of which often yields the same filename as the original
file (but whose CRC will fail).

I've tested that this CRC calculation succeeds in cases where it should
succeed.

The observed CRC check failures (so far) on my Ubuntu 14.04 system are
the following links:
  /lib/x86_64-linux-gnu/libc.so.6 -> /lib/x86_64-linux-gnu/libc-2.19.so
  /lib/x86_64-linux-gnu/libpthread.so.0 -> /lib/x86_64-linux-gnu/libpthread-2.19.so
  /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0 -> /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0.2400.23
  /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 -> /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0.2400.23
which succeed on a later possibility in /usr/lib/debug/.  But optimizing
to check f != file before checking the CRC wouldn't help because of the
naming differences due to symlinks, so I didn't bother.  If we ever want
to optimize away the time doing the CRC checks for these failures, we
could do so by checking if the files are the same path *after* resolving
symlinks.

DONTBUILD
2014-08-06 19:21:44 -07:00
L. David Baron 23a079be1f Bug 914253 patch 8 - Ignore useless results from addr2line and keep what we had before, like fix-linux-stack.pl does. No review.
DONTBUILD
2014-08-06 19:21:43 -07:00
L. David Baron a295321bfa Bug 914253 patch 7 - Remove some debugging code and the remnants of the old address adjustment code. No review.
DONTBUILD
2014-08-06 19:21:43 -07:00
L. David Baron e71c46556e Bug 914253 patch 6 - Linux stacks are lowercase hexidecimal (although this was temporarily not true due to bug 939610, which is probably when mccr8 started fix_linux_stack.py). No review. 2014-08-06 15:52:49 -07:00
L. David Baron d67e757dc8 Bug 914253 patch 5 - Implement caching of addr2line results, like bug 812070 did for fix-linux-stack.pl. No review. 2014-08-06 15:52:49 -07:00
L. David Baron 78433924c6 Bug 914253 patch 4 - Implement address adjustment for fix_linux_stack.py. No review. 2014-08-06 15:52:48 -07:00
L. David Baron bf2f9b43a6 Bug 914253 patch 3 - Implement separate debug info for fix_linux_stack.py, including the addition of support for .note.gnu.build-id sections that fix-linux-stack.pl did not support. No review. 2014-08-06 15:52:48 -07:00
L. David Baron f328e95241 Bug 914253 patch 2 - Pull opening comment from fix-linux-stack.pl. No review. 2014-08-06 15:52:48 -07:00
Andrew McCreight 8ee8cdc74b Bug 914253 patch 1 - Initial version of fix_linux_stack.py, based on slightly old version of fix_macosx_stack.py. No review.
--HG--
rename : tools/rb/fix_macosx_stack.py => tools/rb/fix_linux_stack.py
2014-08-06 15:52:48 -07:00
L. David Baron c91b8791d1 Bug 976350 patch 2: Rename nsTraceRefcntImpl to nsTraceRefcnt. r=bsmedberg
Now that bug 975295 removed the obsolete wrapper class, we can rename
nsTraceRefcntImpl back to its correct pre-XPCOM-glue name,
nsTraceRefcnt.

The best part is that the one place where indentation should have needed
fixing, nsTraceRefcnt::DemangleSymbol, never had its indentation fixed
for the previous renaming.

--HG--
rename : xpcom/base/nsTraceRefcntImpl.cpp => xpcom/base/nsTraceRefcnt.cpp
rename : xpcom/base/nsTraceRefcntImpl.h => xpcom/base/nsTraceRefcnt.h
2014-02-26 13:36:36 -08:00
L. David Baron 0026a0fe5d Back out changeset 72c0c955cf53 (no bug) now that bug 939610 is fixed. 2014-02-24 15:27:53 -08:00
L. David Baron e4e2cc5501 Make fix-linux-stack handle addresses with lowercase hexidecimal, since that seems to be the thing these days. No bug.
(mrbkap, I, and ehoogeveen have all seen lowercase lately.)
2014-02-17 20:07:45 -08:00
Andrew McCreight a2066850ff Bug 967215 - Fix fix_macosx_stack.py. r=njn DONTBUILD 2014-02-06 11:31:49 -08:00
Andrew McCreight a7232f55ed Bug 550335 - fix_macosx_stack for 64-bit. r=ted 2012-05-25 09:07:24 -07:00
Ted Mielczarek f5ce90e65a bug 751673 - fix Windows assertion stacks. r=dbaron
--HG--
extra : rebase_source : b74882bb3914afaa44341088b9f737c909e88f65
2013-03-11 14:21:53 -04:00
Nicholas Nethercote ee02592928 Bug 819833 (part 3) - Fix fix_macosx_stack.py.
--HG--
extra : rebase_source : edf2b21b1061c5b1aa31d071e24099ab8072d3f5
2012-12-10 21:24:55 -08:00
Nicholas Nethercote 3a73cb5adc Bug 819833 (part 2) - Remove fix-macosx-stack.pl because it's unused. r=ted.
--HG--
extra : rebase_source : 66c605bd2086b1a014fa361f7725536c135cdeb7
2012-12-10 21:19:18 -08:00
Nicholas Nethercote bbe751e228 Bug 812070 (part 2) - Speed up fix-linux-stack.pl by adding a cache for previously queried addresses.
--HG--
extra : rebase_source : 286ff300d8ef36ff136d0a55bcef2dcf43845b04
2012-11-15 14:38:24 -08:00
Nicholas Nethercote bf9f66f195 Bug 812070 (part 1) - Merge %pipes and %address_adjustment in fix-linux-stack.pl.
--HG--
extra : rebase_source : db6a782a2e5df081d885b3eb72dcd19e7b196687
2012-11-15 14:38:21 -08:00
Gervase Markham 82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00