gecko-dev/xpcom/base
Kris Maglione fb98e4016d Bug 1475899: Part 3 - Add helper for parsing memory mappings on Linux. r=erahm,jld
The only real way to get memory mapping information on Linux is to read and
parse /proc/self/maps, and infer information about a specific pointer based on
its contents.

This patch adds a helper which parses the entire contents of smaps, and
returns an array of objects describing each region. It also updates resident
unique reporter to use that helper. Later patches use it to map stack base
addresses to VM regions, and report their usage data.

MozReview-Commit-ID: 8VUu1kMT77L

--HG--
extra : source : e89ebe1f22f28d2b667514cb66d39606136a2f58
extra : absorb_source : 86ad16750144e02b9fbe84390eeab6c1917b379d
2018-07-14 02:20:55 -07:00
..
AutoRestore.h
AvailableMemoryTracker.cpp Bug 1468207 - Use the new timer-based available memory tracker on Win32; r=dmajor 2018-07-04 21:06:07 +02:00
AvailableMemoryTracker.h Bug 1468207 - Use the new timer-based available memory tracker on Win32; r=dmajor 2018-07-04 21:06:07 +02:00
ClearOnShutdown.cpp
ClearOnShutdown.h
CodeAddressService.h
CountingAllocatorBase.h
CycleCollectedJSContext.cpp bug 1442776 make CycleCollectedJSContext accessible from JSContext private r=peterv 2018-05-10 17:04:12 +12:00
CycleCollectedJSContext.h bug 1442776 make CycleCollectedJSContext accessible from JSContext private r=peterv 2018-05-10 17:04:12 +12:00
CycleCollectedJSRuntime.cpp Bug 1474522 - Change PrepareScriptEnvironmentAndInvoke to always take a global object instead of an arbitrary scope. r=bholley 2018-07-11 11:44:52 +02:00
CycleCollectedJSRuntime.h Bug 1474522 - Change PrepareScriptEnvironmentAndInvoke to always take a global object instead of an arbitrary scope. r=bholley 2018-07-11 11:44:52 +02:00
Debug.cpp
Debug.h
DebuggerOnGCRunnable.cpp Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
DebuggerOnGCRunnable.h Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
DeferredFinalize.cpp Bug 1359245 - Remove references to context from the cycle collector (r=mccr8) 2017-04-27 15:34:46 -07:00
DeferredFinalize.h
EnumeratedArrayCycleCollection.h
ErrorList.py Bug 1457689 - Remove NS_ERROR_DOM_BAD_DOCUMENT_DOMAIN; r=bz 2018-06-08 15:52:53 -07:00
ErrorNames.cpp Bug 1408951 - Fix non-unified build in ErrorNames.cpp. r=froydnj 2017-10-16 11:03:21 +02:00
ErrorNames.h Bug 1391803 - Use nsStringFwd.h for forward declaring string classes. r=froydnj 2017-08-16 16:48:52 -07:00
HoldDropJSObjects.cpp Bug 1359245 - Remove references to context from the cycle collector (r=mccr8) 2017-04-27 15:34:46 -07:00
HoldDropJSObjects.h
IntentionalCrash.h Bug 1342564 - Don't attempt to write out intentional crash files in opt builds. r=ted 2017-12-07 13:36:49 -05:00
JSObjectHolder.cpp
JSObjectHolder.h Bug 1350958 - Finish labeling ProxyReleaseEvent, r=billm 2017-07-14 08:49:22 +02:00
LogCommandLineHandler.cpp Bug 1451686 - Allow also -MOZ_LOG/_FILE=value form of the logging arguments. r=erahm 2018-04-13 05:38:00 -04:00
LogCommandLineHandler.h Bug 1451686 - Allow also -MOZ_LOG/_FILE=value form of the logging arguments. r=erahm 2018-04-13 05:38:00 -04:00
LogModulePrefWatcher.cpp Backed out changeset e2beba7e6875 (bug 1423798) for failing Browser Chrome tests browser_temporary_permissions_expiry.js on Windows 7 debug. r=backout on a CLOSED TREE 2017-12-09 07:23:35 +02:00
LogModulePrefWatcher.h
Logging.cpp Bug 1470508 Output the process name in MOZ_LOG r=froydnj 2018-06-22 12:31:35 -05:00
Logging.h Bug 1467048 - Add a version of CorruptionCanary for statics. r=froydnj 2018-06-06 14:50:17 -07:00
MacHelpers.h
MacHelpers.mm Bug 1448772 - Avoid back-and-forth UTF-16 to UTF-8 to UTF-16 conversions in xpcom/base/MacHelpers.mm. r=mstange 2018-03-26 10:49:02 +03:00
MacStringHelpers.h Bug 1448772 - Avoid back-and-forth UTF-16 to UTF-8 to UTF-16 conversions in xpcom/base/MacHelpers.mm. r=mstange 2018-03-26 10:49:02 +03:00
MacStringHelpers.mm Bug 1448772 - Avoid back-and-forth UTF-16 to UTF-8 to UTF-16 conversions in xpcom/base/MacHelpers.mm. r=mstange 2018-03-26 10:49:02 +03:00
MemoryMapping.cpp Bug 1475899: Part 3 - Add helper for parsing memory mappings on Linux. r=erahm,jld 2018-07-14 02:20:55 -07:00
MemoryMapping.h Bug 1475899: Part 3 - Add helper for parsing memory mappings on Linux. r=erahm,jld 2018-07-14 02:20:55 -07:00
MemoryReportingProcess.h Bug 1378712 - Remove all trailing whitespaces r=Ehsan 2017-07-06 14:00:35 +02:00
NSPRLogModulesParser.cpp Bug 1295941 - Let mozilla::Tokenizer read signed integers from the input, r=erahm 2018-01-17 06:23:00 +02:00
NSPRLogModulesParser.h Bug 1339537 - Part 6: Pass std::function values tree by const reference instead of by value, r=ehsan 2017-04-27 12:44:57 -04:00
OwningNonNull.h Bug 1456261. Add cycle collection bits for WebIDL dictionaries. r=smaug 2018-04-24 11:57:40 -04:00
SizeOfState.h Bug 1383982 (attempt 2) - Introduce a general mechanism for measuring memory usage of graph-like structures. r=erahm. 2017-07-28 20:10:04 +10:00
StaticMutex.h
StaticPtr.h Bug 1431109 - Ignore a second incorrect warning with gcc (-Wuninitialized) r=froydnj 2018-01-17 15:58:00 +01:00
moz.build Bug 1475899: Part 3 - Add helper for parsing memory mappings on Linux. r=erahm,jld 2018-07-14 02:20:55 -07:00
nsAgg.h Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj 2017-11-05 19:37:28 -08:00
nsAlgorithm.h
nsAutoPtr.h Bug 1466168: Remove mozilla::Forward in favor of std::forward. r=froydnj 2018-06-02 09:33:26 +02:00
nsAutoRef.h
nsCOMPtr.cpp Bug 1390568 - manually de-virtualize do_QueryReferent; r=ehsan 2017-08-24 20:04:31 -04:00
nsCOMPtr.h Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj 2018-06-01 10:45:27 +02:00
nsCRTGlue.cpp Bug 1451535 - Remove NS_ConstExprIsAscii() functions. r=froydnj 2018-04-17 20:03:52 +09:00
nsCRTGlue.h Bug 1451535 - Remove NS_ConstExprIsAscii() functions. r=froydnj 2018-04-17 20:03:52 +09:00
nsClassInfoImpl.cpp Bug 1410460 - Non-unified build fix for nsClassInfoImpl.cpp. r=cpearce 2017-10-20 16:46:40 +01:00
nsCom.h
nsConsoleMessage.cpp
nsConsoleMessage.h
nsConsoleService.cpp Bug 1417185 - Introduce MOZ_CONSOLESERVICE_DISABLE_DEBUGGER_OUTPUT env var to prevent nsConsoleService from flooding debugger's output window, r=jchen 2018-01-16 12:27:00 +02:00
nsConsoleService.h
nsCrashOnException.cpp Bug 1402519 - Remove MOZ_CRASHREPORTER directives from xpcom; r=froydnj 2017-10-10 11:59:39 +02:00
nsCrashOnException.h
nsCycleCollectionNoteChild.h
nsCycleCollectionNoteRootCallback.h Bug 1385474 - Avoid QIing for NoteXPCOMRoot. r=smaug 2017-07-28 16:11:03 -07:00
nsCycleCollectionParticipant.cpp
nsCycleCollectionParticipant.h Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj 2018-04-28 12:50:58 -07:00
nsCycleCollectionTraversalCallback.h
nsCycleCollector.cpp Bug 1475461 - part 2: Make callers of PLDHashTable::Search() const methods if possible r=Ehsan 2018-07-13 19:01:53 +09:00
nsCycleCollector.h Bug 1376614 - Pass budget to forgetSkippable and return early when budget has been used, r=mccr8 2017-06-30 13:44:59 +03:00
nsCycleCollectorTraceJSHelpers.cpp
nsDebug.h Bug 1469769 - Part 7: Remove NS_NOTREACHED definition. r=froydnj 2018-06-17 22:34:23 -07:00
nsDebugImpl.cpp Bug 1470508 Output the process name in MOZ_LOG r=froydnj 2018-06-22 12:31:35 -05:00
nsDebugImpl.h Bug 1470508 Output the process name in MOZ_LOG r=froydnj 2018-06-22 12:31:35 -05:00
nsDumpUtils.cpp Bug 1472523: Part 1 - Avoid string copies in preference callbacks. r=njn 2018-06-30 23:06:17 -07:00
nsDumpUtils.h Bug 1472523: Part 1 - Avoid string copies in preference callbacks. r=njn 2018-06-30 23:06:17 -07:00
nsError.h Bug 1320179 - Part 1: Move nsresult value calculation into a python script, r=froydnj 2017-04-06 18:36:22 -04:00
nsErrorService.cpp
nsErrorService.h
nsGZFileWriter.cpp Bug 1453795 - XPCOM - Initialize member fields in classes/ structures. r=froydnj 2018-06-15 14:41:20 +03:00
nsGZFileWriter.h
nsIClassInfoImpl.h no bug, Align the \ at the end of the #defines DONTBUILD r=froydnj 2018-02-12 15:39:43 +01:00
nsIConsoleListener.idl
nsIConsoleMessage.idl
nsIConsoleService.idl
nsICycleCollectorListener.idl
nsID.cpp Bug 1409227 (part 4) - Replace nsMemory::Clone(id, sizeof(nsID)) with nsID::Clone(id). r=mccr8. 2017-10-18 10:39:20 +11:00
nsID.h Bug 1409227 (part 4) - Replace nsMemory::Clone(id, sizeof(nsID)) with nsID::Clone(id). r=mccr8. 2017-10-18 10:39:20 +11:00
nsIDebug2.idl bug 1300152 - Add nsIDebug2::rustPanic to allow triggering Rust panic for testing. r=froydnj 2017-03-31 12:08:57 -04:00
nsIErrorService.idl
nsIException.idl Bug 1435483 part 21. Remove nsIException::ToString. r=qdot 2018-02-05 16:34:06 -05:00
nsIGZFileWriter.idl
nsIID.h
nsIInterfaceRequestor.idl
nsIInterfaceRequestorUtils.cpp
nsIInterfaceRequestorUtils.h Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj 2018-04-28 12:50:58 -07:00
nsILoadURIDelegate.idl Bug 1441964 - [1.0] Return URI-load delegation success state instead of throwing. r=snorp 2018-02-28 21:02:35 +01:00
nsIMacUtils.idl Bug 1463183 - Remove all instances of isUniversalBinary since we no longer build universal binaries for macOS r=spohl 2018-05-31 20:04:23 +05:30
nsIMemory.idl Bug 1451005 - Forward all memory-pressure events to the child processes; r=njn 2018-05-12 01:21:13 +02:00
nsIMemoryInfoDumper.idl
nsIMemoryReporter.idl Bug 1468207 - Use the new timer-based available memory tracker on Win32; r=dmajor 2018-07-04 21:06:07 +02:00
nsIMessageLoop.idl
nsIMutable.idl
nsINIParser.cpp Bug 1420427 - Stop using native charset in URLPreloader. r=kmag 2017-11-28 00:21:00 +09:00
nsINIParser.h Bug 1420427 - Stop using native charset in URLPreloader. r=kmag 2017-11-28 00:21:00 +09:00
nsISecurityConsoleMessage.idl
nsISizeOf.h
nsISupports.idl
nsISupportsBase.h
nsISupportsImpl.cpp Bug 1399308 - Include nsThreadUtils.h in nsISupportsImpl.cpp. r=froydnj 2017-09-13 13:45:03 +12:00
nsISupportsImpl.h Bug 1463287: Add QueryInterface helper macro for concrete class types. r=bz 2018-05-21 16:33:18 -07:00
nsISupportsUtils.h Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj 2018-04-28 12:50:58 -07:00
nsIUUIDGenerator.idl
nsIVersionComparator.idl
nsIWeakReference.idl Bug 1393592 - manually de-virtualize nsIWeakReference::QueryReferent; r=ehsan 2017-08-25 13:48:29 -04:00
nsIWeakReferenceUtils.h Bug 1457813 - Part 2: Replace non-asserting NS_PRECONDITIONs with MOZ_ASSERTs. r=froydnj 2018-04-28 12:50:58 -07:00
nsInterfaceRequestorAgg.cpp Bug 1372453 - Part 2: Name the caller of ProxyReleaseEvent. r=billm 2017-06-14 09:27:17 +08:00
nsInterfaceRequestorAgg.h
nsMacUtilsImpl.cpp Bug 1463183 - Remove all instances of isUniversalBinary since we no longer build universal binaries for macOS r=spohl 2018-05-31 20:04:23 +05:30
nsMacUtilsImpl.h
nsMemory.cpp Bug 1407838 - Remove the remains of NS_Alloc/NS_Realloc/NS_Free. r=njn 2017-10-12 11:08:44 +09:00
nsMemory.h Bug 1407838 - Remove the remains of NS_Alloc/NS_Realloc/NS_Free. r=njn 2017-10-12 11:08:44 +09:00
nsMemoryImpl.cpp Bug 1360321 - 6. Add AArch64 support in xpcom; r=froydnj 2017-05-17 13:06:23 -04:00
nsMemoryImpl.h
nsMemoryInfoDumper.cpp Bug 1473631: Part 0a - Make preference callbacks typesafe. r=njn 2018-07-06 12:24:41 -07:00
nsMemoryInfoDumper.h
nsMemoryReporterManager.cpp Bug 1475899: Part 3 - Add helper for parsing memory mappings on Linux. r=erahm,jld 2018-07-14 02:20:55 -07:00
nsMemoryReporterManager.h Bug 1474636 - Report memory used by nsMemoryReporterManager. r=njn 2018-07-10 15:38:52 -07:00
nsMessageLoop.cpp Bug 1404198: Part 2b - Switch to NS_NewTimer* in xpcom. r=njn 2017-10-15 23:11:22 -07:00
nsMessageLoop.h
nsObjCExceptions.h Bug 1402519 - Remove MOZ_CRASHREPORTER directives from xpcom; r=froydnj 2017-10-10 11:59:39 +02:00
nsQueryObject.h Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj 2017-11-05 19:37:28 -08:00
nsSecurityConsoleMessage.cpp
nsSecurityConsoleMessage.h
nsSystemInfo.cpp Backed out 3 changesets (bug 1418131) for failing Browser-chrome on toolkit/modules/tests/browser/browser_Troubleshoot.js on a CLOSED TREE 2018-01-16 03:39:43 +02:00
nsSystemInfo.h
nsTWeakRef.h
nsTraceRefcnt.cpp Bug 1453795 - XPCOM - Initialize member fields in classes/ structures. r=froydnj 2018-06-15 14:41:20 +03:00
nsTraceRefcnt.h Bug 1408459, part 2 - Remove unused declaration of NS_MeanAndStdDev(). r=erahm 2017-10-15 08:30:57 -07:00
nsUUIDGenerator.cpp
nsUUIDGenerator.h
nsVersionComparator.cpp Bug 1423773 - Part 1: Remove usage of nsStringGlue.h. r=glandium 2017-12-06 16:52:51 -08:00
nsVersionComparator.h Bug 1426898 - Stop including Char16.h everywhere. r=Waldo 2017-12-23 00:53:12 +09:00
nsVersionComparatorImpl.cpp
nsVersionComparatorImpl.h
nsWeakPtr.h
nsWeakReference.cpp Bug 1393885 - provide a faster path for do_GetWeakReference; r=erahm 2017-09-05 15:39:40 -04:00
nsWeakReference.h
nsWindowsHelpers.h Bug 1451366: Part 1 - Wait after launch from update and restart, r=mhowell, jimm 2018-05-14 14:43:36 -07:00
nscore.h Bug 1460929 - code coverage no longer use _exit on exit r=marco 2018-05-11 15:53:22 -07:00
nsrootidl.idl Bug 1455217 - Part 1: Add an explicit Promise type to xpidl, r=mccr8 2018-05-14 17:55:53 -04:00