diff --git a/tooling/agent/debugger_impl.cpp b/tooling/agent/debugger_impl.cpp index 6862fabc5e64a5fc79904712e12d5fda74db4d50..20c66fb08ae761e5f6e8f3ebb6ad63ce3e2d91b8 100755 --- a/tooling/agent/debugger_impl.cpp +++ b/tooling/agent/debugger_impl.cpp @@ -151,6 +151,7 @@ void DebuggerImpl::SaveParsedScriptsAndUrl(const std::string &fileName, const st { // Save recordName to its corresponding url recordNames_[url].insert(recordName); + recordNameSet_.insert(recordName); // Save parsed fileName to its corresponding url urlFileNameMap_[url].insert(fileName); // Create and save script diff --git a/tooling/agent/debugger_impl.h b/tooling/agent/debugger_impl.h index 191b604001851379bb4497e5888870fed31a932a..0c92b9865ef6261878a8f271cb8a4c5ae54abaa1 100644 --- a/tooling/agent/debugger_impl.h +++ b/tooling/agent/debugger_impl.h @@ -297,6 +297,11 @@ private: return !breakOnStartEnable_; } + const std::unordered_set &GetAllRecordNames() const + { + return recordNameSet_; + } + class Frontend { public: explicit Frontend(ProtocolChannel *channel) : channel_(channel) {} @@ -326,6 +331,7 @@ private: JSDebugger *jsDebugger_ {nullptr}; std::unordered_map> recordNames_ {}; + std::unordered_set recordNameSet_ {}; std::unordered_map> urlFileNameMap_ {}; std::unordered_map> scripts_ {}; PauseOnExceptionsState pauseOnException_ {PauseOnExceptionsState::NONE}; diff --git a/tooling/backend/js_pt_hooks.cpp b/tooling/backend/js_pt_hooks.cpp index 6e64a87f67eb3db53510d6ec9a31bd3cd4ed08df..c84e885f7670974e600a7bd08271a2f8ee7c3040 100644 --- a/tooling/backend/js_pt_hooks.cpp +++ b/tooling/backend/js_pt_hooks.cpp @@ -145,4 +145,9 @@ void JSPtHooks::HitSymbolicBreakpoint() debugger_->SetPauseOnNextByteCode(true); } + +const std::unordered_set &JSPtHooks::GetAllRecordNames() const +{ + return debugger_->GetAllRecordNames(); +} } // namespace panda::ecmascript::tooling diff --git a/tooling/backend/js_pt_hooks.h b/tooling/backend/js_pt_hooks.h index a8ea466f69dfd22ab9d2fd37e97e3c60574cccd9..f875c697fae94e772869e84c1bd0efa35bb2309f 100644 --- a/tooling/backend/js_pt_hooks.h +++ b/tooling/backend/js_pt_hooks.h @@ -44,6 +44,7 @@ public: void DisableFirstTimeFlag() override; void GenerateAsyncFrames(std::shared_ptr asyncStack, bool skipTopFrame) override; void HitSymbolicBreakpoint() override; + const std::unordered_set &GetAllRecordNames() const override; private: NO_COPY_SEMANTIC(JSPtHooks); NO_MOVE_SEMANTIC(JSPtHooks); diff --git a/tooling/test/utils/test_hooks.h b/tooling/test/utils/test_hooks.h index 15ec01126e026994c264b2f3e0fb464fc59978cc..134c6ad5123553ddb7e1b89f5f13795b7d90ed15 100644 --- a/tooling/test/utils/test_hooks.h +++ b/tooling/test/utils/test_hooks.h @@ -125,6 +125,12 @@ public: void HitSymbolicBreakpoint() override {} + const std::unordered_set &GetAllRecordNames() const override + { + static const std::unordered_set recordName; + return recordName; + } + void TerminateTest() { debugInterface_->UnregisterHooks();