Commit Graph

41 Commits

Author SHA1 Message Date
Cameron McCormack
6efa10fcb3 Bug 732664 - Use FormatMessageA so that XPCOM stack walker prints error message correctly. r=dbaron 2012-03-06 10:04:40 +11:00
Masatoshi Kimura
28f2776f50 Bug 699247 - Remove Win2K related code. r=jimm, sr=neil 2012-02-23 08:53:55 -06:00
Jeff Muizelaar
d1be62a4ef Bug 724079. Add an internal stackwalk API. r=ehsan
This will be used by the profiler to be able to unwind arbitrary threads.
2012-02-03 15:13:24 -05:00
Ed Morley
ad5a8e1d06 Backout f1acc52a59da (bug 719983) & 6771bd53e267 (bug 699247) for 30% WinXp Ts regression 2012-02-08 21:04:21 +00:00
Masatoshi Kimura
88ba00973a Bug 699247 - Say goodbye to Win2k related code. r=jimm, sr=neil 2012-02-08 10:00:45 -06:00
Ehsan Akhgari
c83b553615 Bug 718032 - Make stackwalking for other threads cheaper on Windows by avoiding involving a third walker thread; r=jrmuizel 2012-01-26 11:57:23 -05:00
Vladan Djeric
68060606a9 Bug 716590 - WalkStackMain64 shouldn't skip frames unless it's walking the thread that called NS_StackWalk. r=dbaron 2012-01-23 17:21:23 -05:00
Ehsan Akhgari
44f218c3d4 Bug 713278 - Teach NS_StackWalk to walk the stack of other threads too on Windows; r=dbaron 2011-12-23 18:14:09 -05:00
Rafael Ávila de Espíndola
03f0b2e63d Bug 708031 - refactor the ifdefs in nsStackWalk.cpp. r=dbaron.
--HG--
extra : rebase_source : 806f8437d30787c59e0059054c094fee77b5dce3
2011-12-22 11:00:48 -05:00
Javi Rueda
313b993b78 Bug 379342 - Remove Win95/Win98 support code in XPCom; r=bsmedberg a=removal 2011-12-13 14:17:58 +00:00
Rafael Ávila de Espíndola
bb57c6b547 Bug 707648 - Only try to init the critical range if we are able to walk the stack. r=ehsan. 2011-12-06 14:26:49 -05:00
Rafael Ávila de Espíndola
561bf65f37 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.

--HG--
extra : rebase_source : bba4ac9e3378c88f7037aa884511e473a57121f6
2011-12-02 19:26:04 -05:00
Chris Lord
cbca29d21a 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
b573c23826 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
2a602a5685 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
Jeff Walden
b7753477cf Bug 693469 - Implement mozilla::ArrayLength and mozilla::ArrayEnd, and replace uses of NS_ARRAY_LENGTH whenever possible. (Exceptions: assigning to static initializers, use in static assertions, as template parameters, etc. These will go away when the relevant compilers have C++11 constexpr support.) r=cjones
--HG--
extra : rebase_source : b4bae9a0f85abf2feb828609b50e756916b99a6f
2011-10-10 22:50:08 -07:00
Jeff Walden
eb2cb918a4 Back out everything since 5435ee09cf7b. Tinderbox compilers hate me. r=epic-fail 2011-10-12 12:21:53 -07:00
Jeff Walden
77ebbde4ab Bug 639469 - Implement mozilla::ArrayLength and mozilla::ArrayEnd, and replace uses of NS_ARRAY_LENGTH whenever possible. r=cjones
--HG--
extra : rebase_source : 860a8271bf7e51cde358f2a4185c410de1fc2960
2011-10-10 22:50:08 -07:00
Michael Wu
d8e503c38b Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Ed Morley
aa86759d37 Bug 652506 - Remove WinCE code from xpcom; r=bsmedberg 2011-05-01 20:59:24 +02:00
Jory A. Pratt
b8260165be Bug 593911 - Check for dlopen in the libc too. r=khuey a=bsmedberg 2010-11-05 18:26:51 +01:00
Jacek Caban
7393907967 Bug 569586 - XPCOM compilation failure on mingw-w64 due to pointer to int cast loosing precision. r=benjamin
--HG--
extra : rebase_source : e4d0b0b110992af5f397aea52c36a5f5ed9f56c5
2010-06-25 14:02:24 +02:00
Ehsan Akhgari
a87b134220 Bug 560647 - add startup timeline instrumentation; r=vlad 2010-05-19 19:22:19 -04:00
Makoto Kato
64ceec236c Bug 475229 - xpcom/base/nsStackWalk support for Windows x64. r=benjamin 2009-03-22 12:53:47 +09:00
Robert O'Callahan
9d8186e0e0 Bug 478195 - '[Mac] Same-thread deadlock with trace-malloc (causing random red on OS X 10.5.2 mozilla-central leak test build)'. r=dbaron. 2009-02-17 21:11:29 -08:00
Brad Lassey
4342224fbe Bug 455381 - WinCE XPCOM Explicit Unicode API Calls, Wide Char CheckVersion Function r=bsmedberg 2008-12-03 08:41:12 -05:00
roc+@cs.cmu.edu
1359e3a201 Bug 417903. Don't crash if _SymGetLineFromAddr64 fails. r=benjamin,a=beltzner 2008-02-24 17:16:41 -08:00
dbaron@dbaron.org
c861e5a715 And actually get the right bug number. b=415426 (which is what the previous checkin was for as well) 2008-02-03 11:59:07 -08:00
dbaron@dbaron.org
3896f75022 Switch back to evil casts, which are the only solution that works across SDK version. b=415252 2008-02-03 11:51:14 -08:00
dbaron@dbaron.org
4425004b4d Match new (more-const) signature for PENUMLOADED_MODULES_CALLBACK and PENUMLOADED_MODULES_CALLBACK64. b=415426 Fixing bustage on Windows tinderbox from SDK upgrade. 2008-02-03 11:34:31 -08:00
karlt+@karlt.net
e6cd923439 Bug 326594 - Consider using backtrace() for Unix stack traces: Add safety checks to i386/ppc unwind and use libgcc_s for amd64 and others r=dbaron,bsmedberg a=schrep 2007-11-11 20:45:40 -08:00
dbaron@dbaron.org
333618edd4 Back out a small part of bug 391848 to fix bustage for some people (and add a comment warning about the problem). 2007-08-27 22:42:25 -07:00
dbaron@dbaron.org
f587e91942 Do stack walking on a single thread to avoid deadlocks during thread creation. b=391321 r=robarnold@mozilla.com sr=jmathies@mozilla.com (delegated by bsmedberg) a1.9=bzbarsky@mit.edu 2007-08-27 22:42:04 -07:00
dbaron@dbaron.org
3d844b932b Allow builds compiled with VC8 to function with older versions of dbghelp.dll. b=391848 r+a=bsmedberg 2007-08-19 14:38:31 -07:00
dbaron@dbaron.org
7344964330 Debugging code and cleanup from fixing Windows stack traces to work on VC8-compiled builds in addition to VC7.1-compiled builds. b=391848 r=bsmedberg a=bzbarsky 2007-08-19 14:37:55 -07:00
dbaron@dbaron.org
316ba54207 Enable Linux stack walking code on Mac OS X. b=336517 r+a=bsmedberg 2007-08-15 17:03:29 -07:00
dbaron@dbaron.org
dc6322123e Include file name and line number in Windows stack traces. b=391850 r+a=bsmedberg 2007-08-14 09:34:32 -07:00
dbaron@dbaron.org
367db6a074 Merge nsStackFrameWin and nsStackFrameUnix into nsStackWalk. b=391793 r+a=bsmedberg 2007-08-13 12:37:36 -07:00
dbaron@dbaron.org
9afc343b9e Convert trace-malloc to using XPCOM stack walking API. b=374829 r+a=brendan 2007-08-10 15:20:48 -07:00
dbaron@dbaron.org
0963614ac2 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
dbaron@dbaron.org
e6a0747a5d 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