From 9e5b87786de156a4ec6d41a7bb32aa4e4e30c342 Mon Sep 17 00:00:00 2001 From: Vern Paxson Date: Thu, 15 May 2025 12:39:18 -0700 Subject: [PATCH] generate --event-trace output explicitly rather than in EventTraceMgr destructor --- src/EventTrace.cc | 2 +- src/EventTrace.h | 4 +++- src/zeek-setup.cc | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/EventTrace.cc b/src/EventTrace.cc index 6fb0511d01..09eda0cb5e 100644 --- a/src/EventTrace.cc +++ b/src/EventTrace.cc @@ -958,7 +958,7 @@ EventTraceMgr::EventTraceMgr(const std::string& trace_file) { reporter->FatalError("can't open event trace file %s", trace_file.c_str()); } -EventTraceMgr::~EventTraceMgr() { +void EventTraceMgr::Generate() { if ( events.empty() ) return; diff --git a/src/EventTrace.h b/src/EventTrace.h index a9f7e28353..710f2680b7 100644 --- a/src/EventTrace.h +++ b/src/EventTrace.h @@ -440,7 +440,9 @@ private: class EventTraceMgr { public: EventTraceMgr(const std::string& trace_file); - ~EventTraceMgr(); + + // Generates the trace upon exit. + void Generate(); // Called at the beginning of invoking an event's handlers. void StartEvent(const ScriptFunc* ev, const zeek::Args* args); diff --git a/src/zeek-setup.cc b/src/zeek-setup.cc index 429111e572..f2a9989267 100644 --- a/src/zeek-setup.cc +++ b/src/zeek-setup.cc @@ -399,6 +399,9 @@ static void terminate_zeek() { script_coverage_mgr.WriteStats(); + if ( etm ) + etm->Generate(); + delete zeekygen_mgr; delete packet_mgr; delete analyzer_mgr;