Commit Graph

830 Commits

Author SHA1 Message Date
Chris Peterson
353ee65255 Bug 1272513 - Part 1: Suppress -Wshadow warnings-as-errors in some directories. r=glandium 2016-05-11 00:00:01 -07:00
Nathan Froyd
8db25584a9 Bug 1270928 - part 4 - return a UniquePtr from GetLoggedData; r=BenWa
This change makes ownership clearer and enables us to get rid of the
last use of nsAutoPtr in tools/profiler/.
2016-05-09 10:04:50 -04:00
Nathan Froyd
73cd95dafd Bug 1270928 - part 3 - don't include nsAutoPtr.h in ThreadResponsiveness.h; r=BenWa
Do #include RefPtr.h, though, since we need that for the definition of
ThreadResponsiveness.
2016-05-09 10:04:50 -04:00
Nathan Froyd
31c3d5d2af Bug 1270928 - part 2 - use UniquePtr in GeckoTaskTracer.cpp:sTraceInfos; r=BenWa
Less nsAutoPtr usage and header bootlegging is a good thing.
2016-05-09 10:04:50 -04:00
Nathan Froyd
6b5caaf0b7 Bug 1270928 - part 1 - use UniquePtr in PROFILER_MARKER_PAYLOAD; r=BenWa
We'd like to get rid of nsAutoPtr usage, and this header doesn't even
#include nsAutoPtr.h.
2016-05-09 10:04:50 -04:00
Jim Chen
0574002b30 Bug 1260208 - part 0 - correctly compare EHTable when sorting; r=froydnj
operator< for EHTable compares the LHS start PC with the RHS *end* PC.
Because the ranges are non-overlapping, this works fine for two distinct
EHTables. However, the comparison doesn't work if LHS and RHS refer to
the same EHTable; in that case operator< returns true, even though it
should return false because the two operands are identical.

The operator is used to sort a std::vector using std::sort [1].  I think
the libc++ std::sort implementation has a quirk where, if the comparison
function has the above bug, sort will sometimes get confused, and start
sorting "values" outside of the memory range that it's given.  This
results in memory corruption and subsequent unpredictable behavior.

The fix is simply to compare only the start PCs in EHTable, so that
std::sort can work on it correctly.

[1] http://mxr.mozilla.org/mozilla-central/source/tools/profiler/core/EHABIStackWalk.cpp?rev=86730d0a8209#485
2016-05-03 09:13:49 -04:00
Kyle Huey
c73656947b Bug 1265927: Move nsRunnable to mozilla::Runnable, CancelableRunnable to mozilla::CancelableRunnable. r=froydnj 2016-04-25 17:23:21 -07:00
Charles Collicutt
60a5a1819e Bug 1261392 - Define gettid for all Linux builds. r=bgirard 2016-04-11 22:49:00 +02:00
Ryan VanderMeulen
139ecf837b Backed out changeset 14eb89c4134d (bug 1261392) for Android bustage.
--HG--
extra : rebase_source : 02b744b942c4d14b43435f8762a4f56a8d5b550f
2016-04-10 16:57:26 -04:00
Charles Collicutt
239fba2186 Bug 1261392 - Define gettid for all Linux builds. r=BenWa 2016-04-09 13:40:00 -04:00
Eric Rahm
7a9e99d2c6 Bug 1251787 - Remove remaining references to MOZILLA_XPCOMRT_API from tools. r=mstange 2016-02-27 11:12:08 -08:00
James Willcox
faeba278d1 Fix Fennec build on Mac, no bug, NPTOB r=ted 2016-02-08 17:45:27 -06:00
Ted Mielczarek
ea6f9a1958 bug 1069556 - sync to Breakpad c53ed143108948eb7e2d7ee77dc8c0d92050ce7c. r=glandium, benwa
This commit contains a few things:
* Update our copy of google-breakpad to upstream c53ed143108948eb7e2d7ee77dc8c0d92050ce7c
* Get rid of all but one local patch, fold a few related local patches into one
* Misc build fixup to sync with upstream--adding a few new moz.build files,
  source files
* The final bits of unhooking Breakpad from the profiler:
** Revert to only building toolkit/crashreporter if MOZ_CRASHREPORTER.
** Stop building bits of Breakpad that we only needed for the profiler.
** Remove a few bits of profiler code that were used to interface with Breakpad.
** Remove toolkit/crashreporter/breakpad-logging, which was only used to
   suppress Breakpad logging for the in-process stackwalker.
* Upstream removed their Android-compat sys/ucontext.h because the Android NDK
  added it, but the bionic we're using for Gonk builds is too old, so add a
  copy of the previous version of those files to
  toolkit/crashreporter/gonk-include to keep Gonk building.
* Consolidate moz.build files under toolkit/crashreporter/google-breakpad/client/linux

--HG--
rename : toolkit/crashreporter/google-breakpad/src/common/pathname_stripper.h => toolkit/crashreporter/google-breakpad/src/processor/pathname_stripper.h
rename : toolkit/crashreporter/google-breakpad/src/common/pathname_stripper_unittest.cc => toolkit/crashreporter/google-breakpad/src/processor/pathname_stripper_unittest.cc
extra : histedit_source : 43e65f5432657f548cac5aa7936461e58454c3b6%2C7b56ccc79d9d58ebde0583d920f3593e25212621
extra : rebase_source : f6dbfb8fb2ba5b27e63b26d57c404962679c7a76
extra : commitid : DMQlXPms868
extra : source : 09fd4f3ab6e764016fe073efb226f03b5969af59
extra : intermediate-source : 16f9d3a6d2ef6a6efd088e3b8eff0a4723daef8f
2016-01-27 09:39:53 -05:00
Chris H-C
843e04bb32 Bug 1238121 - Properly guard Profiler's RAII classes r=BenWa f=mystor
We can't use GuardObjects easily on the printf variant as va_list args and
default args can't play together.
2016-01-28 09:19:00 +01:00
Wes Kocher
23122402f7 Backed out changeset 65624d4c4a65 (bug 1238121) to hopefully fix the intermittent hazard failures
--HG--
extra : commitid : 6SsEbxXjwKq
2016-01-29 10:14:34 -08:00
Nathan Froyd
b1bbf96de9 Backout 24dbe7da7370:a319694b46d5 (bug 1069556) for build bustage on various platforms on a CLOSED TREE
--HG--
rename : toolkit/crashreporter/google-breakpad/src/client/linux/Makefile.in => toolkit/crashreporter/google-breakpad/src/client/linux/handler/Makefile.in
rename : toolkit/crashreporter/google-breakpad/src/processor/pathname_stripper.h => toolkit/crashreporter/google-breakpad/src/common/pathname_stripper.h
rename : toolkit/crashreporter/google-breakpad/src/processor/pathname_stripper_unittest.cc => toolkit/crashreporter/google-breakpad/src/common/pathname_stripper_unittest.cc
2016-01-29 11:55:43 -05:00
Ted Mielczarek
478ab040e0 bug 1069556 - local build changes to match up with upstream Breakpad. r=benwa,glandium
This commit contains a few things:
* Misc build fixup to sync with upstream--adding a few new moz.build files,
  source files
* The final bits of unhooking Breakpad from the profiler:
** Revert to only building toolkit/crashreporter if MOZ_CRASHREPORTER.
** Stop building bits of Breakpad that we only needed for the profiler.
** Remove a few bits of profiler code that were used to interface with Breakpad.
** Remove toolkit/crashreporter/breakpad-logging, which was only used to
   suppress Breakpad logging for the in-process stackwalker.
* Upstream removed their Android-compat sys/ucontext.h because the Android NDK
  added it, but the bionic we're using for Gonk builds is too old, so add a
  copy of the previous version of those files to
  toolkit/crashreporter/gonk-include to keep Gonk building.
* Consolidate moz.build files under toolkit/crashreporter/google-breakpad/client/linux

--HG--
rename : toolkit/crashreporter/google-breakpad/src/client/linux/handler/Makefile.in => toolkit/crashreporter/google-breakpad/src/client/linux/Makefile.in
extra : commitid : HeAH4kH17B1
extra : rebase_source : c9942aaca1d4e9555ecd44a23d7020a8a7ba1d77
extra : source : 31c98f5e107b9271be88e7c8543c4dbb4a2b6526
2016-01-27 09:39:53 -05:00
Chris H-C
dfbec1cede Bug 1238121 - Properly guard Profiler's RAII classes. r=BenWa, f=mystor
We can't use GuardObjects easily on the printf variant as va_list args and default args can't play together.

--HG--
extra : rebase_source : 418252aa8d1dcae56decd5ff99246d34578b9003
2016-01-28 09:19:00 -05:00
Carsten "Tomcat" Book
db55b0fa77 Backed out changeset 31c98f5e107b (bug 1069556)
--HG--
rename : toolkit/crashreporter/google-breakpad/src/client/linux/Makefile.in => toolkit/crashreporter/google-breakpad/src/client/linux/handler/Makefile.in
2016-01-26 14:53:02 +01:00
Ted Mielczarek
bf718146b7 bug 1069556 - local build changes to match up with upstream Breakpad. r=benwa,glandium
This commit contains a few things:
* Misc build fixup to sync with upstream--adding a few new moz.build files,
  source files
* The final bits of unhooking Breakpad from the profiler:
** Revert to only building toolkit/crashreporter if MOZ_CRASHREPORTER.
** Stop building bits of Breakpad that we only needed for the profiler.
** Remove a few bits of profiler code that were used to interface with Breakpad.
** Remove toolkit/crashreporter/breakpad-logging, which was only used to
   suppress Breakpad logging for the in-process stackwalker.
* Upstream removed their Android-compat sys/ucontext.h because the Android NDK
  added it, but the bionic we're using for Gonk builds is too old, so add a
  copy of the previous version of those files to
  toolkit/crashreporter/gonk-include to keep Gonk building.
* Consolidate moz.build files under toolkit/crashreporter/google-breakpad/client/linux

--HG--
rename : toolkit/crashreporter/google-breakpad/src/client/linux/handler/Makefile.in => toolkit/crashreporter/google-breakpad/src/client/linux/Makefile.in
extra : commitid : GR2H5y5DM7E
extra : rebase_source : 212b8f04703555658e1df026de2211ea20ac390b
2015-11-09 08:14:52 -05:00
Phil Ringnalda
6aeccf0426 Merge f-t to m-c, a=merge 2016-01-23 18:11:37 -08:00
Sylvestre Ledru
ab4e3a0d42 Bug 1218816 - Remove useless semicolons. Found by coccinelle. r=Ehsan
--HG--
extra : rebase_source : 7d2cc56b6553cd7a8d848d3c660f30735bd82eec
2016-01-22 16:58:49 +01:00
Tom Tromey
5412728905 Bug 757969 - use __thread in ThreadLocal; r=froydnj 2016-01-22 10:33:44 -07:00
Nick Fitzgerald
22136ee183 Bug 1241249 - Add an SPS pseudo entry for JS stack capturing; r=shu
This commit adds SPS pseudo frame entries for
`js::SavedStacks::saveCurrentStack` with the `AutoSPSEntry` RAII class.
2016-01-20 11:32:00 +01:00
Benoit Girard
34b754c945 Bug 1239498 - Use Stackwalk64 on win x64. r=jrmuizel
--HG--
extra : commitid : 7YO11uKXKTJ
2016-01-13 15:22:01 -08:00
Jeff Muizelaar
f020f6e101 Bug 1239413. Clarify comment about the context flags. 2016-01-13 14:39:23 -05:00
Andrea Marchesini
caa2f9b456 Bug 1231378 - part 4 - Fix uninitialized members of classes in netwerk/widget/storage/uriloader/memory/tools, r=smaug 2016-01-12 18:16:59 +00:00
Carsten "Tomcat" Book
3589aeeb8a Backed out changeset d6b0ffe1a7b3 (bug 1231378) 2016-01-12 15:48:54 +01:00
Andrea Marchesini
2609a149da Bug 1231378 - part 4 - Fix uninitialized members of classes in netwerk/widget/storage/uriloader/memory/tools, r=smaug 2016-01-12 13:57:37 +00:00
Nicholas Nethercote
bf641fa45d Bug 1237151 (part 4) - Turn on -Wignored-qualifiers for C++ code. r=mshal.
It's already on for C code.
2016-01-05 14:31:02 -08:00
Nicholas Nethercote
ec89bbf7f2 Bug 1237151 (part 3) - Remove ignored qualifiers in all remaining code. r=froydnj. 2016-01-05 17:08:45 -08:00
Chris Peterson
de68dcb191 Bug 1235502 - Fix -Wunreachable-code warning in tools/profiler/. r=BenWa
tools/profiler/core/shared-libraries-linux.cc:115:15: warning: code will never be executed [-Wunreachable-code]
2015-12-28 19:12:21 -07:00
Mike Conley
009f18f61a Bug 1221846 - Properly close the tasktracer property in the GeckoSampler JSON blob. r=BenWa
--HG--
extra : rebase_source : c4ef8f49ab072da6287be8cab0393cc16be9edfe
2015-12-15 19:12:17 -05:00
Mike Conley
e62894147e Bug 1221846 - Get Task Tracer building on desktop r=cyu.
--HG--
extra : rebase_source : 0666526a249c106274a4c764e325cd9810e9a2e7
2015-12-02 20:55:38 -05:00
Benoit Girard
8caf284e45 Bug 1233835 - Fix TaskTracer double init assert. r=mconley
--HG--
extra : rebase_source : 4e734a428bf22863e5ee6fa44191752c9a8cec77
2015-12-18 16:12:47 -05:00
Mike Conley
51d7f5de3d Bug 1193838 - Allow ProfileGatherer to gather profiles from exiting processes. r=BenWa
--HG--
extra : commitid : IhyN838vNVU
extra : rebase_source : a91c87e3f9a087cd789bdb678651ab351357092a
2015-08-18 14:57:35 -04:00
Mike Conley
9811d5b26c Bug 1193838 - Expose ProfileGatherer as an nsISupports through nsIProfiler for process parent actors. r=BenWa
We need to let ContentParent and PluginModuleParent get a reference to the ProfileGatherer
during the window of time that we're profiling so that if they start to die (the actor is
starting to go away), they have a gatherer they can send their last profile data to.

--HG--
extra : commitid : LkcpDsiXmp0
extra : rebase_source : d1c9e6e7640ff759cef25920e2bc17c0484544bd
2015-08-12 14:20:26 -04:00
Mike Conley
0069816212 Bug 1193838 - Make ProfileGatherer exist during the lifetime of a GeckoSampler. r=BenWa
--HG--
extra : commitid : GutYRbuADgV
extra : rebase_source : dc291977bb7ef43a024e26c83abb47b75a82b841
2015-12-01 13:01:27 -05:00
Bogdan Postelnicu
e98cb50956 Bug 1228339 - Initialize members in class. r=jseward 2015-12-02 02:50:00 +01:00
Nigel Babu
cda29316d8 Backed out changeset 0d6721e243d3 (bug 1228339) for build bustage
CLOSED TREE

--HG--
extra : amend_source : 68000631ca959f6ac64d1ed9d01fe091f933370a
2015-12-02 14:09:40 +05:30
Bogdan Postelnicu
b33bbc96f1 Bug 1228339 - initialize memebers in class. r=jseward
--HG--
extra : rebase_source : e66d5752d36299c357a8ca1fdb737ef010fc67ba
2015-11-26 07:03:00 +01:00
Mike Conley
26dff43ec9 Bug 1103094 - Start profiling subprocesses if the parent process is already profiling. r=BenWa
--HG--
extra : commitid : 5WuS9Ur4Lmn
extra : rebase_source : ec3fd280607c5b13090d3c4e902b47ffd5617ec3
2015-08-11 14:26:27 -04:00
Mike Conley
6439f951dc Bug 1103094 - Add accessor for nsIProfilerStartParams to nsIProfiler. r=BenWa
--HG--
extra : commitid : LMGmwgJA3uM
extra : rebase_source : 8d44cc8166996fb31ff4e256a5e050ad45c06611
2015-08-11 14:26:09 -04:00
Benoit Girard
58a6a87af1 Bug 989499 - Part 2: Use FramePointerStackwalk on windows. r=rjmuizel
--HG--
extra : commitid : ILgHveuWaET
2014-03-28 16:31:15 -04:00
Jeff Muizelaar
1a0db79ef4 Bug 989499 - Part 1: Add a way to get the stack top. r=BenWa
--HG--
extra : commitid : FeZ1v6oPxGh
2014-03-28 16:18:24 -04:00
Chris Peterson
7d76083902 Bug 1223262 - Fix -Wunreachable-code warning in tools/profiler. r=BenWa
tools/profiler/core/platform-linux.cc:363:11: warning: code will never be executed [-Wunreachable-code]
2015-11-11 21:18:20 -08:00
Birunthan Mohanathas
9985829ecc Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Nathan Froyd
01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd
583afa0965 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Nick Fitzgerald
5808084085 Bug 121027 - Stop manually adding null entries to the profiler's JSON output; r=shu 2015-10-05 14:19:00 +02:00