Repository navigation
[mya] List mya images and snapshots - #76311
Draft
justinmichaud wants to merge 5 commits into
Draft
justinmichaud wants to merge 5 commits into
justinmichaud wants to merge 5 commits into
Conversation
Collaborator
|
EWS run on previous version of this PR (hash 27c94fe) Details |
justinmichaud
force-pushed
the
eng/mya-images
branch
from
October 8, 2026 16:00
27c94fe to
241c7f1
Compare
Collaborator
|
EWS run on previous version of this PR (hash 241c7f1) Details |
https://bugs.webkit.org/show_bug.cgi?id=325093 Reviewed by NOBODY (OOPS!). Build fixes for CMAKE on macOS, add entitlements needed for public builds on macOS, and clean up the mya enablement guards.
https://bugs.webkit.org/show_bug.cgi?id=325094 Reviewed by NOBODY (OOPS!). This patch is the first step to getting mya working on linux. We add a stub implementation that does almost nothing, but it confirms that mya can bulid and run on linux. mya on macOS with cmake and with xcodebuild still work as expected. We also re-work the testing code a bit to make it easier to add new tests out-of-process. * Source/JavaScriptCore/CMakeLists.txt: * Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj: * Source/JavaScriptCore/corpse/CorpseAddress.h: (JSC::Corpse::Address::Address): (JSC::Corpse::Address::toTargetVMAddress const): (JSC::Corpse::Address::deletedValue): (WTF::DefaultHash<JSC::Corpse::Address>::hash): (JSC::Corpse::Address::toMachVMAddress const): Deleted. * Source/JavaScriptCore/corpse/CorpseByteParser.cpp: * Source/JavaScriptCore/corpse/CorpseByteParser.h: * Source/JavaScriptCore/corpse/CorpseClient.cpp: * Source/JavaScriptCore/corpse/CorpseClient.h: * Source/JavaScriptCore/corpse/CorpseError.h: * Source/JavaScriptCore/corpse/CorpseExportsTrie.cpp: * Source/JavaScriptCore/corpse/CorpseExportsTrie.h: * Source/JavaScriptCore/corpse/CorpseMachVMSPI.h: * Source/JavaScriptCore/corpse/CorpseMemory.cpp: (JSC::Corpse::Memory::Region::create): (JSC::Corpse::Memory::Region::~Region): (JSC::Corpse::Memory::pageSize): (JSC::Corpse::Memory::Memory): (JSC::Corpse::Memory::map): (JSC::Corpse::Memory::dump const): * Source/JavaScriptCore/corpse/CorpseMemory.h: * Source/JavaScriptCore/corpse/CorpseMemoryPtr.h: (JSC::Corpse::Memory::Ptr::kernResult const): * Source/JavaScriptCore/corpse/CorpseMemorySpan.h: (JSC::Corpse::Memory::Span::kernResult const): * Source/JavaScriptCore/corpse/CorpsePlatform.h: Added. (JSC::Corpse::isValidTaskHandle): (JSC::Corpse::OwnedTaskHandle::adopt): (JSC::Corpse::OwnedTaskHandle::OwnedTaskHandle): (JSC::Corpse::OwnedTaskHandle::operator=): (JSC::Corpse::OwnedTaskHandle::~OwnedTaskHandle): (JSC::Corpse::OwnedTaskHandle::release): (JSC::Corpse::OwnedTaskHandle::taskHandle): * Source/JavaScriptCore/corpse/CorpseProcess.cpp: (JSC::Corpse::reportIfNoProcess): (JSC::Corpse::Process::holdsLiveTask const): (JSC::Corpse::Process::attach): (JSC::Corpse::Process::executablePath const): (JSC::Corpse::Process::isTranslated const): (JSC::Corpse::Process::detach): Deleted. * Source/JavaScriptCore/corpse/CorpseProcess.h: * Source/JavaScriptCore/corpse/CorpseRegion.cpp: (JSC::Corpse::Region::findContaining): (JSC::Corpse::Region::pageCount const): * Source/JavaScriptCore/corpse/CorpseRegion.h: * Source/JavaScriptCore/corpse/CorpseSnapshot.cpp: (JSC::Corpse::takeSnapshot): (JSC::Corpse::Snapshot::Snapshot): (JSC::Corpse::Snapshot::~Snapshot): Deleted. * Source/JavaScriptCore/corpse/CorpseSnapshot.h: (JSC::Corpse::Snapshot::isValid const): (JSC::Corpse::Snapshot::corpsePort const): * Source/JavaScriptCore/corpse/CorpseSymbol.cpp: (JSC::Corpse::Symbol::reportFailure const): (JSC::Corpse::Symbol::resolveInImage): (JSC::Corpse::Symbol::lookUpName): * Source/JavaScriptCore/corpse/CorpseSymbol.h: * Source/JavaScriptCore/corpse/CorpseThread.cpp: (JSC::Corpse::Thread::runStateDescription const): (JSC::Corpse::Thread::collect): * Source/JavaScriptCore/corpse/CorpseThread.h: * Source/JavaScriptCore/corpse/tests/CorpseAddressTest.cpp: (JSCToolsTest::testAddress): * Source/JavaScriptCore/corpse/tests/CorpseAddressTest.h: Removed. * Source/JavaScriptCore/corpse/tests/CorpseByteParserTest.cpp: * Source/JavaScriptCore/corpse/tests/CorpseByteParserTest.h: Removed. * Source/JavaScriptCore/corpse/tests/CorpseExportsTrieTest.cpp: (JSCToolsTest::testExportsTrie): (JSCToolsTest::fuzzExportsTrie): * Source/JavaScriptCore/corpse/tests/CorpseExportsTrieTest.h: Removed. * Source/JavaScriptCore/corpse/tests/CorpseMemoryTest.cpp: (JSCToolsTest::testMemory): * Source/JavaScriptCore/corpse/tests/CorpseMemoryTest.h: Removed. * Source/JavaScriptCore/corpse/tests/CorpseProcessTest.cpp: (JSCToolsTest::testProcess): * Source/JavaScriptCore/corpse/tests/CorpseProcessTest.h: Removed. * Source/JavaScriptCore/corpse/tests/CorpseRegionTest.cpp: (JSCToolsTest::testRegion): * Source/JavaScriptCore/corpse/tests/CorpseRegionTest.h: Removed. * Source/JavaScriptCore/corpse/tests/CorpseSnapshotTest.cpp: (JSCToolsTest::testSnapshot): * Source/JavaScriptCore/corpse/tests/CorpseSnapshotTest.h: Removed. * Source/JavaScriptCore/corpse/tests/CorpseSymbolTest.cpp: (JSCToolsTest::testSymbol): * Source/JavaScriptCore/corpse/tests/CorpseSymbolTest.h: Removed. * Source/JavaScriptCore/corpse/tests/CorpseThreadTest.cpp: (JSCToolsTest::testThreads): * Source/JavaScriptCore/corpse/tests/CorpseThreadTest.h: Removed. * Source/JavaScriptCore/corpse/tests/CorpseVMTest.cpp: Added. (JSCToolsTest::testVM): * Source/JavaScriptCore/corpse/tests/LibJSCToolsTestUtilities.cpp: (JSCToolsTest::linuxSkip): (JSCToolsTest::parkThread): (JSCToolsTest::executableBase): (JSCToolsTest::runCorpseTarget): (JSCToolsTest::takeSnapshot): (JSCToolsTest::spawnAndAnalyze): (JSCToolsTest::analyzeInAndOutOfProcess): * Source/JavaScriptCore/corpse/tests/LibJSCToolsTestUtilities.h: * Source/JavaScriptCore/corpse/tests/testLibJSCTools.cpp: (main): * Source/JavaScriptCore/mya/mya.cpp: (Mya::Shell::listThreads): (Mya::Shell::handlePrint): (main): * Source/JavaScriptCore/shell/CMakeLists.txt: * Source/cmake/WebKitFeatures.cmake:
https://bugs.webkit.org/show_bug.cgi?id=325546 Reviewed by NOBODY (OOPS!). we add an optional dependency to mya, mya_heap: - liblldb is used to read debug info This will be useful in the future when we teach mya how to walk the full native heap. We add a simple test that confirms that we can use both of these from within mya.
https://bugs.webkit.org/show_bug.cgi?id=325303 Reviewed by NOBODY (OOPS!). Some cleanups to make future tests + linux support easier.
justinmichaud
force-pushed
the
eng/mya-images
branch
from
October 8, 2026 20:57
241c7f1 to
75e02b6
Compare
Collaborator
|
EWS run on previous version of this PR (hash 75e02b6) Details |
justinmichaud
force-pushed
the
eng/mya-images
branch
from
October 9, 2026 00:26
75e02b6 to
427611b
Compare
Collaborator
|
EWS run on previous version of this PR (hash 427611b) Details |
justinmichaud
force-pushed
the
eng/mya-images
branch
from
October 9, 2026 16:52
427611b to
d3e522e
Compare
Collaborator
|
EWS run on previous version of this PR (hash d3e522e) Details |
https://bugs.webkit.org/show_bug.cgi?id=326803 Reviewed by NOBODY (OOPS!). Shuffle some code around to make listing images and snapshots easier. Linux now supports snapshots via co-operation with the jsc process. macOS also supports this co-operative style of snapshot so that the heap can be walked during a safepoint.
justinmichaud
force-pushed
the
eng/mya-images
branch
from
October 9, 2026 17:34
d3e522e to
af6123b
Compare
Collaborator
|
EWS run on current version of this PR (hash af6123b) Details |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🛠 ios-safer-cpp
27c94fe
fda1784
ca9776f
54147e7
8802fda
af6123b
🧪 style🛠 ios🛠 mac🛠 wpe🛠 win🧪 bindings🛠 ios-sim🛠 mac-AS-debug🧪 wpe-wk2🧪 win-tests🧪 webkitperl🧪 ios-wk2🧪 api-mac🧪 api-wpe🧪 ios-wk2-wpt🧪 api-mac-debug🧪 jsc-wpe🧪 jsc-x86-64🧪 api-ios🧪 mac-wk2🛠 gtk3-gcc🛠 🧪 jsc-debug-arm64🛠 ios-safer-cpp🧪 mac-AS-debug-wk2🛠 gtk🛠 vision🧪 mac-wk2-stress🧪 gtk-wk2🛠 vision-sim🧪 mac-intel-wk2🧪 api-gtk🧪 vision-wk2🛠 mac-safer-cpp🛠 playstation🛠 tv🧪 mac-site-isolation🛠 tv-sim🛠 watch🛠 watch-sim