Commit Graph

139 Commits

Author SHA1 Message Date
Rafael Ávila de Espíndola
59b41e200e Bug 696376 - Change how we find critical ranges so that it works on 10.6 too. r=dbaron.
Currently we use dlsym on pthread_cond_wait$UNIX2003 to find a
function that indicates that new_sem_from_pool is on the stack. This
works on 10.5, but on 10.6 I could not find a single reliable
indicator that would work with dlsym.

The good news is that dladdr works with any symbol, not just exported
ones. To find the address of new_sem_from_pool, we set up a malloc logger
and force a call to new_sem_from_pool. From the logger callback we walk
the stack trying dladdr on every address.

To force a call to new_sem_from_pool, the initialization code has to be the
first to use semaphores, so it is now run from NS_LogInit.

This works on 10.6 and 10.5 (but we have to look for
"pthread_cond_wait$UNIX2003"). In 10.7 the call to malloc is gone, so we don't
have to worry about critical addresses on it anymore.
2011-12-02 19:26:04 -05:00
Chris Lord
a73ea11cf3 Backout bug 696376
This broke building on android due to requiring a newer version of unwind.h.
2011-12-02 18:00:58 +00:00
Rafael Ávila de Espíndola
b644e77f68 Bug 696376 - Change how we find critical ranges so that it works on 10.6 too. r=dbaron.
Currently we use dlsym on pthread_cond_wait$UNIX2003 to find a
function that indicates that new_sem_from_pool is on the stack. This
works on 10.5, but on 10.6 I could not find a single reliable
indicator that would work with dlsym.

The good news is that dladdr works with any symbol, not just exported
ones. To find the address of new_sem_from_pool, we set up a malloc logger
and force a call to new_sem_from_pool. From the logger callback we walk
the stack trying dladdr on every address.

To for a call to new_sem_from_pool, the initialization code has to be the
first to use semaphores, so it is now run from NS_LogInit.

This works on 10.6 and 10.5 (but we have to look for
"pthread_cond_wait$UNIX2003"). In 10.7 the call to malloc is gone, so we don't
have to worry about critical addresses on it anymore.
2011-12-01 18:22:00 -05:00
Ehsan Akhgari
478ad1a412 Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron
Landing on a CLOSED TREE
2011-10-17 10:59:28 -04:00
Michael Wu
0fe7772ece Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones 2011-09-28 23:19:26 -07:00
Matheus Kerschbaum
44209e0bdf Bug 678155 - Remove NS_COM. r=bsmedberg 2011-08-18 15:46:39 +02:00
Kyle Huey
d3f94285ab Bug 441197: Explicitly close file descriptors in nsTraceRefcntImpl rather than expecting the OS to clean up properly. r=dbaron 2011-06-24 07:22:37 -07:00
Matheus Kerschbaum
9014e25ac7 Bug 639754 - Remove MOZ_IPC checks since IPC is always built now; r=bsmedberg 2011-04-02 19:14:00 -07:00
Chris Jones
9ae6458637 Rollup of bug 645263 and bug 646259: Switch to mozilla:: sync primitives. r=cjones,dbaron,doublec,ehsan src=bsmedberg
Bug 645263, part 0: Count sync primitive ctor/dtors. r=dbaron
Bug 645263, part 1: Migrate content/media to mozilla:: sync primitives. r=doublec
Bug 645263, part 2: Migrate modules/plugin to mozilla:: sync primitives. sr=bsmedberg
Bug 645263, part 3: Migrate nsComponentManagerImpl to mozilla:: sync primitives. sr=bsmedberg
Bug 645263, part 4: Migrate everything else to mozilla:: sync primitives. r=dbaron
Bug 645263, part 5: Remove nsAutoLock.*. sr=bsmedberg
Bug 645263, part 6: Make editor test be nicer to deadlock detector. r=ehsan
Bug 645263, part 7: Disable tracemalloc backtraces for xpcshell tests. r=dbaron
Bug 646259: Fix nsCacheService to use a CondVar for notifying. r=cjones
2011-03-31 23:29:02 -05:00
Chris Jones
ecb9597975 Backed out changeset 4beec31b9ea9 for increasing frequency of intermittent orange bug 618052 2011-03-31 18:57:38 -05:00
Chris Jones
5dece3352a Rollup of bug 645263 and bug 646259: Switch to mozilla:: sync primitives. r=cjones,dbaron,doublec,ehsan src=bsmedberg
Bug 645263, part 0: Count sync primitive ctor/dtors. r=dbaron
Bug 645263, part 1: Migrate content/media to mozilla:: sync primitives. r=doublec
Bug 645263, part 2: Migrate modules/plugin to mozilla:: sync primitives. sr=bsmedberg
Bug 645263, part 3: Migrate nsComponentManagerImpl to mozilla:: sync primitives. sr=bsmedberg
Bug 645263, part 4: Migrate everything else to mozilla:: sync primitives. r=dbaron
Bug 645263, part 5: Remove nsAutoLock.*. sr=bsmedberg
Bug 645263, part 6: Make editor test be nicer to deadlock detector. r=ehsan
Bug 645263, part 7: Disable tracemalloc backtraces for xpcshell tests. r=dbaron
Bug 646259: Fix nsCacheService to use a CondVar for notifying. r=cjones
2011-03-31 14:51:19 -05:00
Jory A. Pratt
bf641887a2 Bug 593911 - Check for dlopen in the libc too. r=khuey a=bsmedberg 2010-11-05 18:26:51 +01:00
Chris Jones
330ca89d72 Bug 583059: Make it possible to break on failed static-XPCOM-ctor/dtor checks and add an env var to make failed checks fatal. r=dbaron 2010-08-05 17:11:23 -05:00
Saint Wesonga
a4601a3177 Bug 562387 - Convert NS_NEWXPCOM/NS_DELETEXPCOM to new/delete. r=bsmedberg 2010-07-05 11:42:18 +02:00
Dão Gottwald
7728f9828b Backed out changeset 59ace8d80ce8 2010-07-04 22:01:13 +02:00
Saint Wesonga
4f0a4ebc1e Bug 562387 - Convert NS_NEWXPCOM/NS_DELETEXPCOM to new/delete. r=bsmedberg 2010-07-04 21:39:17 +02:00
Benjamin Smedberg
a66882514d Bug 516515 - Don't initialize XPCOM in plugin processes, r=cjones 2010-02-03 17:17:09 -05:00
Benjamin Smedberg
3b39f86e8a But 535564 part 3 - don't inherit leak/bloat log handles from parent to child processes on Windows: the Java plugin spawns a process which can remain after our Firefox/plugin processes are properly cleaned up, preventing the log files from being closed, r=jgriffin over IRC 2010-01-27 11:19:50 -05:00
Chris Jones
76a23485f7 Bug 529134: Initialize tracemalloc in NS_LogInit() to ensure that tracemalloc is always thread safe. r=bsmedberg r=dbaron 2009-12-29 16:45:59 -06:00
3a6f593cba Bug 535106 solaris nsTraceRefcntImpl.cpp Error: Overloading ambiguity between "nsACString_internal::AppendInt(int)" and "nsACString_internal::AppendInt(unsigned)".
hi
r=smaug
2009-12-16 14:50:07 +01:00
Jonathan Griffin
6e24460dad Bug 519570. Fix build bustage on non-IPC builds. 2009-11-10 11:39:42 -08:00
Jonathan Griffin
ef71a8f1ce Bug 519570. Log leaks for child processes in separate files, and handle them in automation.py. r=bsmedberg 2009-11-10 11:16:12 -08:00
Daniel Holbert
f786dff879 Bug 521677: Use fputs instead of printf/fprintf in a few cases, to fix "format not a string literal and no format arguments" build warnings. r=dbaron 2009-10-19 08:03:00 -07:00
Mitchell Field
d9db79b7eb Bug 513924 - "remove tons of options from configure" [r=ted.mielczarek r=benjamin] 2009-09-15 13:06:32 -04:00
L. David Baron
ce0bf37a7e Make nsTraceRefcnt use 64-bit counters when those counters are for all objects over app lifetime. (Bug 483500) r=bsmedberg 2009-04-10 13:30:10 -07:00
Arpad Borsos
e2e3c4e27a Bug 474369 - get rid of nsVoidArray, xpcom part; r=bsmedberg 2009-04-03 18:43:08 +02:00
Arpad Borsos
1b55360c07 Bug 456388 - Remove PR_STATIC_CALLBACK and PR_CALLBACK(_DECL) from the tree; r+sr=brendan 2008-10-10 17:04:34 +02:00
Serge Gautherie
8e975772b0 Bug 448934 – |nsTraceRefcnt::DumpStatistics()| write number of entries in the "middle" of the array
(Av1) <nsTraceRefcntImpl.*>
2008-08-03 23:39:04 +02:00
Jeff Walden
b736123038 Bug 429587 - MOZ_COUNT_DTOR and NS_LOG_RELEASE should assert (or worse) when used on an unrecognized pointer, when possible, for easier recognition of memmoved refcounted classes. r=dbaron 2008-06-02 21:28:59 -04:00
49354b20bc Fixes for Windows CE. b=418662, r=bsmedberg, a=damons 2008-02-22 16:22:47 -08:00
509219301a Remove nsTraceRefcnt::LoadLibrarySymbols, which is no longer needed due to the error handling in SymGetModuleInfoEspecial. b=391793 r+a=bsmedberg 2007-08-13 12:36:57 -07:00
095d5bc328 Split the address->symbol mapping from the rest of the stack walking code. b=374829 r=bsmedberg a=bzbarsky 2007-08-10 14:29:37 -07:00
c3789f1c16 Export a stack walking API (usable from C or C++) from XPCOM. b=374689 r=bsmedberg a=bzbarsky 2007-08-10 14:28:22 -07:00
98de634631 Bug 348748 - Replace all instances of NS_STATIC_CAST and friends with C++ casts (and simultaneously bitrot nearly every patch in existence). r=bsmedberg on the script that did this. Tune in next time for Macro Wars: Episode II: Attack on the LL_* Macros. 2007-07-08 00:08:04 -07:00
53bade9ffd Make nsTraceRefcnt print addresses along with serial numbers, and fix warning about casting to a function pointer. b=383234 r=peterv 2007-06-06 15:05:25 -07:00
darin@meer.net
2a086138b6 restoring warning per bsmedberg 2006-03-31 00:59:02 +00:00
darin@meer.net
862ba45cb9 fixes bug 328925 "Replace NS_WARN_IF_FALSE with NS_ASSERTION (where appropriate)" r=dbaron 2006-03-30 18:40:56 +00:00
benjamin@smedbergs.us
6e1d50e51a Bug 328855 - Support x86-64 in nsStackFrameUnix, r=dbaron 2006-02-28 18:28:54 +00:00
benjamin@smedbergs.us
baded8a99e Bug 325229 followup: only dump refcnt statistics if logging has been initialized 2006-02-10 16:19:13 +00:00
benjamin@smedbergs.us
00d84a96a3 Bug 325229 part 1 - standalone glue registers exit routine which is called after module unload; also fixes bug 317481 - C API for nsTraceRefcnt; also fixes bug 318622 - Make nsTraceRefcntImpl::SetActivityIsLegal work properly and turn it on; design review by dbaron, r=darin 2006-02-10 15:00:36 +00:00
dbaron@dbaron.org
582a16aaab Use __builtin_frame_address instead of setjmp to get the frame pointer for Linux stack traces, plus a little other cleanup. r=caillon sr=shaver b=323853 2006-02-09 23:03:49 +00:00
timeless@mozdev.org
2b1f03d254 backing out changes from
Bug 323853 - JB_BP not exported by newer glibc
per shaver, r=shaver
2006-02-03 19:35:14 +00:00
wr@rosenauer.org
81a6cf1b18 Bug 323853 - JB_BP not exported by newer glibc (2.4), r=bsmedberg, sr=shaver 2006-01-25 05:46:27 +00:00
joshmoz@gmail.com
dfae94215e remove XP_MAC code from xpcom/base. r=josh r=dougt a=bsmedberg 2005-06-24 00:24:42 +00:00
dougt@meer.net
d7b3a079b2 bug 280245. WinCE build and support changes. r=darin 2005-01-30 21:33:47 +00:00
gerv@gerv.net
c0cd46fc51 Bug 236613: change to MPL/LGPL/GPL tri-license. 2004-04-18 14:21:17 +00:00
cls@seawood.org
a674911efb Remove troublesome libiberty dependency by using __cxa_demangle instead of cplus_demangle. (redux)
Bug #232763 r=dbaron sr=brendan
2004-02-11 07:16:11 +00:00
cls@seawood.org
51f786cabd Backing out previous changes.
Missed a cplus_demangle call and it turns out that all of trace-malloc needs to be tweaked to use c++ instead of C.
Bug #232763
2004-02-10 18:55:04 +00:00
cls@seawood.org
404f4c928d Remove troublesome libiberty dependency by using __cxa_demangle instead of cplus_demangle.
Bug #232763 r=dbaron sr=brendan
2004-02-10 16:19:47 +00:00
bryner@brianryner.com
3736b6e206 Bug 229875 - eliminate unnecssary public/virtual destructors. This patch changes all refcounted classes under xpcom/, which aren't inherited from or used on the stack, to have private, nonvirtual destructors. r=dougt, sr=dbaron. 2004-01-15 06:14:18 +00:00