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;