diff --git a/src/common/Exception.cc b/src/common/Exception.cc index 2e39ded..be171e8 100644 --- a/src/common/Exception.cc +++ b/src/common/Exception.cc @@ -2,6 +2,7 @@ #include "logger/Logger.h" +#include #include namespace s2j { diff --git a/src/common/Exception.h b/src/common/Exception.h index afed8df..41d30e0 100644 --- a/src/common/Exception.h +++ b/src/common/Exception.h @@ -1,5 +1,6 @@ #pragma once +#include #include namespace s2j { diff --git a/src/common/ProcFS.cc b/src/common/ProcFS.cc index 704dde0..d2cf88b 100644 --- a/src/common/ProcFS.cc +++ b/src/common/ProcFS.cc @@ -1,5 +1,6 @@ #include "ProcFS.h" +#include #include #include #include diff --git a/src/limits/MemoryLimitListener.cc b/src/limits/MemoryLimitListener.cc index d0e4c04..feb5bcc 100644 --- a/src/limits/MemoryLimitListener.cc +++ b/src/limits/MemoryLimitListener.cc @@ -12,6 +12,7 @@ #include #include +#include #include #include diff --git a/src/limits/MemoryLimitListener.h b/src/limits/MemoryLimitListener.h index 57f2633..7430fa1 100644 --- a/src/limits/MemoryLimitListener.h +++ b/src/limits/MemoryLimitListener.h @@ -5,6 +5,8 @@ #include "seccomp/policy/SyscallPolicy.h" #include "tracer/TraceEventListener.h" +#include + namespace s2j { namespace limits { diff --git a/src/limits/OutputLimitListener.cc b/src/limits/OutputLimitListener.cc index 4a8dc83..82b7909 100644 --- a/src/limits/OutputLimitListener.cc +++ b/src/limits/OutputLimitListener.cc @@ -8,6 +8,7 @@ #include "seccomp/filter/LibSeccompFilter.h" #include +#include #include #include diff --git a/src/limits/OutputLimitListener.h b/src/limits/OutputLimitListener.h index a72948d..8b3f811 100644 --- a/src/limits/OutputLimitListener.h +++ b/src/limits/OutputLimitListener.h @@ -4,6 +4,8 @@ #include "printer/OutputSource.h" #include "seccomp/policy/SyscallPolicy.h" +#include + namespace s2j { namespace limits { diff --git a/src/limits/ThreadsLimitListener.cc b/src/limits/ThreadsLimitListener.cc index 916030d..c9fc741 100644 --- a/src/limits/ThreadsLimitListener.cc +++ b/src/limits/ThreadsLimitListener.cc @@ -7,6 +7,8 @@ #include "seccomp/action/ActionKill.h" #include "seccomp/filter/LibSeccompFilter.h" +#include + namespace s2j { namespace limits { diff --git a/src/limits/TimeLimitListener.cc b/src/limits/TimeLimitListener.cc index 1198bad..4a3689a 100644 --- a/src/limits/TimeLimitListener.cc +++ b/src/limits/TimeLimitListener.cc @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -96,6 +97,8 @@ void TimeLimitListener::onPostExecute() { // TODO: run this just after child exit auto time = getTimeUsage(); outputBuilder_->setRealTimeMicroseconds(time->realTimeUs); + outputBuilder_->setUserTimeMicroseconds(time->processTimeUs.uTimeUs); + outputBuilder_->setSysTimeMicroseconds(time->processTimeUs.sTimeUs); verifyTimeUsage(move(time)); } diff --git a/src/limits/TimeLimitListener.h b/src/limits/TimeLimitListener.h index 69b543e..b742082 100644 --- a/src/limits/TimeLimitListener.h +++ b/src/limits/TimeLimitListener.h @@ -4,6 +4,7 @@ #include "printer/OutputSource.h" #include +#include namespace s2j { namespace limits { diff --git a/src/ns/MountNamespaceListener.cc b/src/ns/MountNamespaceListener.cc index 82add46..71a480b 100644 --- a/src/ns/MountNamespaceListener.cc +++ b/src/ns/MountNamespaceListener.cc @@ -6,6 +6,7 @@ #include "common/WithErrnoCheck.h" #include "logger/Logger.h" +#include #include #include #include diff --git a/src/ns/MountNamespaceListener.h b/src/ns/MountNamespaceListener.h index 4ee03b5..07b9ea9 100644 --- a/src/ns/MountNamespaceListener.h +++ b/src/ns/MountNamespaceListener.h @@ -9,6 +9,7 @@ #include +#include #include namespace s2j { diff --git a/src/perf/PerfListener.cc b/src/perf/PerfListener.cc index 19888ea..ac031b2 100644 --- a/src/perf/PerfListener.cc +++ b/src/perf/PerfListener.cc @@ -11,6 +11,7 @@ #include #include +#include #include #include diff --git a/src/perf/PerfListener.h b/src/perf/PerfListener.h index 1e21502..4a58a4b 100644 --- a/src/perf/PerfListener.h +++ b/src/perf/PerfListener.h @@ -4,6 +4,8 @@ #include "executor/ExecuteEventListener.h" #include "printer/OutputSource.h" +#include + namespace s2j { namespace perf { diff --git a/src/printer/AugmentedOIOutputBuilder.cc b/src/printer/AugmentedOIOutputBuilder.cc index df117e3..3ee370c 100644 --- a/src/printer/AugmentedOIOutputBuilder.cc +++ b/src/printer/AugmentedOIOutputBuilder.cc @@ -24,20 +24,5 @@ std::string AugmentedOIOutputBuilder::dump() const { return ss.str(); } -void AugmentedOIOutputBuilder::dumpStatus(std::ostream& ss) const { - if (killReason_ != KillReason::NONE) { - ss << killReasonComment_; - } - else if (killSignal_ > 0) { - ss << "process exited due to signal " << killSignal_; - } - else if (exitStatus_ > 0) { - ss << "runtime error " << exitStatus_; - } - else { - ss << "ok"; - } -} - } // namespace printer } // namespace s2j diff --git a/src/printer/AugmentedOIOutputBuilder.h b/src/printer/AugmentedOIOutputBuilder.h index 05ddfa5..d2a9be5 100644 --- a/src/printer/AugmentedOIOutputBuilder.h +++ b/src/printer/AugmentedOIOutputBuilder.h @@ -10,10 +10,6 @@ class AugmentedOIOutputBuilder : public OIModelOutputBuilder { std::string dump() const override; const static std::string FORMAT_NAME; - -private: - void dumpStatus(std::ostream& ss) const; - int encodeStatusCode() const; }; } // namespace printer diff --git a/src/printer/HumanReadableOIOutputBuilder.cc b/src/printer/HumanReadableOIOutputBuilder.cc new file mode 100644 index 0000000..7f5d4fd --- /dev/null +++ b/src/printer/HumanReadableOIOutputBuilder.cc @@ -0,0 +1,23 @@ +#include "HumanReadableOIOutputBuilder.h" + +#include + +namespace s2j { +namespace printer { + +const std::string HumanReadableOIOutputBuilder::FORMAT_NAME = "human"; + +std::string HumanReadableOIOutputBuilder::dump() const { + // This is inspired by the oiejq script + std::stringstream ss; + ss << std::endl << "-------------------------" << std::endl << "Result: "; + dumpStatus(ss); + ss << std::endl + << "Time used: " << static_cast(milliSecondsElapsed_) / 1000 + << "s" << std::endl + << "Memory used: " << memoryPeakKb_ / 1024 << "MiB" << std::endl; + return ss.str(); +} + +} // namespace printer +} // namespace s2j diff --git a/src/printer/HumanReadableOIOutputBuilder.h b/src/printer/HumanReadableOIOutputBuilder.h new file mode 100644 index 0000000..a5a7f90 --- /dev/null +++ b/src/printer/HumanReadableOIOutputBuilder.h @@ -0,0 +1,16 @@ +#pragma once + +#include "OIModelOutputBuilder.h" + +namespace s2j { +namespace printer { + +class HumanReadableOIOutputBuilder : public OIModelOutputBuilder { +public: + std::string dump() const override; + + const static std::string FORMAT_NAME; +}; + +} // namespace printer +} // namespace s2j diff --git a/src/printer/OIModelOutputBuilder.cc b/src/printer/OIModelOutputBuilder.cc index 8df46ed..71a418f 100644 --- a/src/printer/OIModelOutputBuilder.cc +++ b/src/printer/OIModelOutputBuilder.cc @@ -1,5 +1,8 @@ #include "OIModelOutputBuilder.h" +#include +#include + namespace s2j { namespace printer { @@ -21,6 +24,16 @@ OutputBuilder& OIModelOutputBuilder::setRealTimeMicroseconds(uint64_t time) { return *this; } +OutputBuilder& OIModelOutputBuilder::setUserTimeMicroseconds(uint64_t time) { + userMilliSecondsElapsed_ = time / 1000; + return *this; +} + +OutputBuilder& OIModelOutputBuilder::setSysTimeMicroseconds(uint64_t time) { + sysMilliSecondsElapsed_ = time / 1000; + return *this; +} + OutputBuilder& OIModelOutputBuilder::setMemoryPeak(uint64_t memoryPeakKb) { memoryPeakKb_ = memoryPeakKb; return *this; @@ -53,5 +66,20 @@ OutputBuilder& OIModelOutputBuilder::setKillReason( return *this; } +void OIModelOutputBuilder::dumpStatus(std::ostream& ss) const { + if (killReason_ != KillReason::NONE) { + ss << killReasonComment_; + } + else if (killSignal_ > 0) { + ss << "process exited due to signal " << killSignal_; + } + else if (exitStatus_ > 0) { + ss << "runtime error " << exitStatus_; + } + else { + ss << "ok"; + } +} + } // namespace printer } // namespace s2j diff --git a/src/printer/OIModelOutputBuilder.h b/src/printer/OIModelOutputBuilder.h index 3ca5b4c..37f7bc5 100644 --- a/src/printer/OIModelOutputBuilder.h +++ b/src/printer/OIModelOutputBuilder.h @@ -2,6 +2,8 @@ #include "OutputBuilder.h" +#include + namespace s2j { namespace printer { @@ -11,6 +13,8 @@ class OIModelOutputBuilder : public OutputBuilder { OutputBuilder& setCyclesUsed(uint64_t cyclesUsed) override; OutputBuilder& setRealTimeMicroseconds(uint64_t time) override; + OutputBuilder& setUserTimeMicroseconds(uint64_t time) override; + OutputBuilder& setSysTimeMicroseconds(uint64_t time) override; OutputBuilder& setMemoryPeak(uint64_t memoryPeakKb) override; OutputBuilder& setExitStatus(uint32_t exitStatus) override; OutputBuilder& setKillSignal(uint32_t killSignal) override; @@ -22,6 +26,8 @@ class OIModelOutputBuilder : public OutputBuilder { uint64_t milliSecondsElapsed_; uint64_t realMilliSecondsElapsed_; + uint64_t userMilliSecondsElapsed_; + uint64_t sysMilliSecondsElapsed_; uint64_t memoryPeakKb_; uint64_t syscallsCounter_; uint32_t exitStatus_; @@ -29,6 +35,8 @@ class OIModelOutputBuilder : public OutputBuilder { KillReason killReason_ = KillReason::NONE; std::string killReasonComment_; + + void dumpStatus(std::ostream& ss) const; }; } // namespace printer diff --git a/src/printer/OITimeToolOutputBuilder.cc b/src/printer/OITimeToolOutputBuilder.cc index f728754..35f479c 100644 --- a/src/printer/OITimeToolOutputBuilder.cc +++ b/src/printer/OITimeToolOutputBuilder.cc @@ -19,21 +19,6 @@ std::string OITimeToolOutputBuilder::dump() const { return ss.str(); } -void OITimeToolOutputBuilder::dumpStatus(std::ostream& ss) const { - if (killReason_ != KillReason::NONE) { - ss << killReasonComment_; - } - else if (killSignal_ > 0) { - ss << "process exited due to signal " << killSignal_; - } - else if (exitStatus_ > 0) { - ss << "runtime error " << exitStatus_; - } - else { - ss << "ok"; - } -} - int OITimeToolOutputBuilder::encodeStatusCode() const { static const int CODE_SIG_BASE = 0; static const int CODE_RE_BASE = 200; diff --git a/src/printer/OITimeToolOutputBuilder.h b/src/printer/OITimeToolOutputBuilder.h index 7e70b15..0d02896 100644 --- a/src/printer/OITimeToolOutputBuilder.h +++ b/src/printer/OITimeToolOutputBuilder.h @@ -12,7 +12,6 @@ class OITimeToolOutputBuilder : public OIModelOutputBuilder { const static std::string FORMAT_NAME; private: - void dumpStatus(std::ostream& ss) const; int encodeStatusCode() const; }; diff --git a/src/printer/OutputBuilder.h b/src/printer/OutputBuilder.h index 546dddd..3b965f9 100644 --- a/src/printer/OutputBuilder.h +++ b/src/printer/OutputBuilder.h @@ -1,5 +1,6 @@ #pragma once +#include #include namespace s2j { @@ -35,6 +36,12 @@ class OutputBuilder { virtual OutputBuilder& setRealTimeMicroseconds(uint64_t time) { return *this; } + virtual OutputBuilder& setUserTimeMicroseconds(uint64_t time) { + return *this; + } + virtual OutputBuilder& setSysTimeMicroseconds(uint64_t time) { + return *this; + } virtual OutputBuilder& setMemoryPeak(uint64_t memoryPeakKb) { return *this; } diff --git a/src/printer/RealTimeOIOutputBuilder.cc b/src/printer/RealTimeOIOutputBuilder.cc index 27361a8..1b5fca1 100644 --- a/src/printer/RealTimeOIOutputBuilder.cc +++ b/src/printer/RealTimeOIOutputBuilder.cc @@ -24,20 +24,5 @@ std::string RealTimeOIOutputBuilder::dump() const { return ss.str(); } -void RealTimeOIOutputBuilder::dumpStatus(std::ostream& ss) const { - if (killReason_ != KillReason::NONE) { - ss << killReasonComment_; - } - else if (killSignal_ > 0) { - ss << "process exited due to signal " << killSignal_; - } - else if (exitStatus_ > 0) { - ss << "runtime error " << exitStatus_; - } - else { - ss << "ok"; - } -} - } // namespace printer } // namespace s2j diff --git a/src/printer/RealTimeOIOutputBuilder.h b/src/printer/RealTimeOIOutputBuilder.h index 14b6fdc..727ae8c 100644 --- a/src/printer/RealTimeOIOutputBuilder.h +++ b/src/printer/RealTimeOIOutputBuilder.h @@ -10,10 +10,6 @@ class RealTimeOIOutputBuilder : public OIModelOutputBuilder { std::string dump() const override; const static std::string FORMAT_NAME; - -private: - void dumpStatus(std::ostream& ss) const; - int encodeStatusCode() const; }; } // namespace printer diff --git a/src/printer/UserTimeOIOutputBuilder.cc b/src/printer/UserTimeOIOutputBuilder.cc new file mode 100644 index 0000000..ed19af2 --- /dev/null +++ b/src/printer/UserTimeOIOutputBuilder.cc @@ -0,0 +1,29 @@ +#include "UserTimeOIOutputBuilder.h" +#include "common/Exception.h" + +#include + +namespace s2j { +namespace printer { + +const std::string UserTimeOIOutputBuilder::FORMAT_NAME = "oiuser"; + +std::string UserTimeOIOutputBuilder::dump() const { + KillReason reason = killReason_; + if (reason == KillReason::NONE) { + if (killSignal_ > 0 || exitStatus_ > 0) { + reason = KillReason::RE; + } + } + + std::stringstream ss; + ss << killReasonName(reason) << " " << exitStatus_ << " " + << userMilliSecondsElapsed_ << " " << 0ULL << " " << memoryPeakKb_ << " " + << syscallsCounter_ << std::endl; + dumpStatus(ss); + ss << std::endl; + return ss.str(); +} + +} // namespace printer +} // namespace s2j diff --git a/src/printer/UserTimeOIOutputBuilder.h b/src/printer/UserTimeOIOutputBuilder.h new file mode 100644 index 0000000..3fdc25e --- /dev/null +++ b/src/printer/UserTimeOIOutputBuilder.h @@ -0,0 +1,16 @@ +#pragma once + +#include "OIModelOutputBuilder.h" + +namespace s2j { +namespace printer { + +class UserTimeOIOutputBuilder : public OIModelOutputBuilder { +public: + std::string dump() const override; + + const static std::string FORMAT_NAME; +}; + +} // namespace printer +} // namespace s2j diff --git a/src/s2japp/Application.cc b/src/s2japp/Application.cc index ffba4fd..a6e2d5e 100644 --- a/src/s2japp/Application.cc +++ b/src/s2japp/Application.cc @@ -21,6 +21,7 @@ #include "seccomp/SeccompListener.h" #include "tracer/TraceExecutor.h" +#include #include #include #include diff --git a/src/s2japp/ApplicationArguments.cc b/src/s2japp/ApplicationArguments.cc index a364703..5f94212 100644 --- a/src/s2japp/ApplicationArguments.cc +++ b/src/s2japp/ApplicationArguments.cc @@ -1,6 +1,7 @@ #include "ApplicationArguments.h" #include #include +#include #include #include #include diff --git a/src/s2japp/ApplicationArguments.h b/src/s2japp/ApplicationArguments.h index 14b51af..2b2371a 100644 --- a/src/s2japp/ApplicationArguments.h +++ b/src/s2japp/ApplicationArguments.h @@ -1,6 +1,7 @@ #pragma once #include +#include #include #include diff --git a/src/s2japp/ApplicationSettings.cc b/src/s2japp/ApplicationSettings.cc index 1757e90..c15bf42 100644 --- a/src/s2japp/ApplicationSettings.cc +++ b/src/s2japp/ApplicationSettings.cc @@ -4,11 +4,14 @@ #include "common/Utils.h" #include "printer/AugmentedOIOutputBuilder.h" +#include "printer/HumanReadableOIOutputBuilder.h" #include "printer/OITimeToolOutputBuilder.h" #include "printer/RealTimeOIOutputBuilder.h" +#include "printer/UserTimeOIOutputBuilder.h" #include "seccomp/policy/DefaultPolicy.h" #include "seccomp/policy/PermissivePolicy.h" +#include #include #include @@ -90,8 +93,12 @@ const FactoryMap ApplicationSettings::OUTPUT_FORMATS( {{"oitt", std::make_shared}, + {"human", + std::make_shared}, {"oiaug", std::make_shared}, + {"oiuser", + std::make_shared}, {"oireal", std::make_shared}}); const std::string ApplicationSettings::DEFAULT_OUTPUT_FORMAT = "oitt"; diff --git a/src/s2japp/ApplicationSettings.h b/src/s2japp/ApplicationSettings.h index 5405f45..6cbd25d 100644 --- a/src/s2japp/ApplicationSettings.h +++ b/src/s2japp/ApplicationSettings.h @@ -7,6 +7,7 @@ #include "common/Utils.h" +#include #include #include #include diff --git a/src/seccomp/SeccompContext.cc b/src/seccomp/SeccompContext.cc index 24e77ef..be277d0 100644 --- a/src/seccomp/SeccompContext.cc +++ b/src/seccomp/SeccompContext.cc @@ -4,6 +4,7 @@ #include "common/FD.h" #include +#include namespace s2j { namespace seccomp { diff --git a/src/seccomp/SeccompContext.h b/src/seccomp/SeccompContext.h index 1351e4e..91e0081 100644 --- a/src/seccomp/SeccompContext.h +++ b/src/seccomp/SeccompContext.h @@ -6,6 +6,7 @@ #include +#include #include #include diff --git a/src/seccomp/SeccompListener.cc b/src/seccomp/SeccompListener.cc index f5f929e..82577a0 100644 --- a/src/seccomp/SeccompListener.cc +++ b/src/seccomp/SeccompListener.cc @@ -13,6 +13,7 @@ #include #include #include +#include #include namespace s2j { diff --git a/src/seccomp/SeccompListener.h b/src/seccomp/SeccompListener.h index ae0600c..678a025 100644 --- a/src/seccomp/SeccompListener.h +++ b/src/seccomp/SeccompListener.h @@ -14,6 +14,7 @@ #include "tracer/TraceEventListener.h" #include "tracer/Tracee.h" +#include #include #include #include diff --git a/src/seccomp/SeccompRule.cc b/src/seccomp/SeccompRule.cc index e1377ef..642e31b 100644 --- a/src/seccomp/SeccompRule.cc +++ b/src/seccomp/SeccompRule.cc @@ -1,6 +1,8 @@ #include "SeccompRule.h" #include "SeccompException.h" +#include + namespace s2j { namespace seccomp { diff --git a/src/seccomp/SeccompRule.h b/src/seccomp/SeccompRule.h index 1306b1e..ef15a56 100644 --- a/src/seccomp/SeccompRule.h +++ b/src/seccomp/SeccompRule.h @@ -4,6 +4,7 @@ #include "filter/LibSeccompFilter.h" #include "filter/SyscallFilter.h" +#include #include #include diff --git a/src/seccomp/action/ActionAllow.cc b/src/seccomp/action/ActionAllow.cc index 47e1ed0..0f15400 100644 --- a/src/seccomp/action/ActionAllow.cc +++ b/src/seccomp/action/ActionAllow.cc @@ -1,5 +1,7 @@ #include "ActionAllow.h" +#include + namespace s2j { namespace seccomp { namespace action { diff --git a/src/seccomp/action/ActionAllow.h b/src/seccomp/action/ActionAllow.h index f6cb4ca..9475bbd 100644 --- a/src/seccomp/action/ActionAllow.h +++ b/src/seccomp/action/ActionAllow.h @@ -2,6 +2,8 @@ #include "SeccompAction.h" +#include + namespace s2j { namespace seccomp { namespace action { diff --git a/src/seccomp/action/ActionErrno.cc b/src/seccomp/action/ActionErrno.cc index 9fb3132..fadebfe 100644 --- a/src/seccomp/action/ActionErrno.cc +++ b/src/seccomp/action/ActionErrno.cc @@ -2,6 +2,8 @@ #include "common/Exception.h" +#include + namespace s2j { namespace seccomp { namespace action { diff --git a/src/seccomp/action/ActionErrno.h b/src/seccomp/action/ActionErrno.h index d677e29..34c505f 100644 --- a/src/seccomp/action/ActionErrno.h +++ b/src/seccomp/action/ActionErrno.h @@ -2,6 +2,8 @@ #include "SeccompAction.h" +#include + namespace s2j { namespace seccomp { namespace action { diff --git a/src/seccomp/action/ActionKill.cc b/src/seccomp/action/ActionKill.cc index 2ae1b97..72ea749 100644 --- a/src/seccomp/action/ActionKill.cc +++ b/src/seccomp/action/ActionKill.cc @@ -1,5 +1,7 @@ #include "ActionKill.h" +#include + namespace s2j { namespace seccomp { namespace action { diff --git a/src/seccomp/action/ActionKill.h b/src/seccomp/action/ActionKill.h index 5a8194c..60ab077 100644 --- a/src/seccomp/action/ActionKill.h +++ b/src/seccomp/action/ActionKill.h @@ -2,6 +2,8 @@ #include "SeccompAction.h" +#include + namespace s2j { namespace seccomp { namespace action { diff --git a/src/seccomp/action/ActionTrace.cc b/src/seccomp/action/ActionTrace.cc index 2ecb92f..5b8bef4 100644 --- a/src/seccomp/action/ActionTrace.cc +++ b/src/seccomp/action/ActionTrace.cc @@ -1,5 +1,6 @@ #include "ActionTrace.h" +#include #include namespace s2j { diff --git a/src/seccomp/action/ActionTrace.h b/src/seccomp/action/ActionTrace.h index f2c8837..985fbf3 100644 --- a/src/seccomp/action/ActionTrace.h +++ b/src/seccomp/action/ActionTrace.h @@ -2,6 +2,7 @@ #include "SeccompAction.h" +#include #include #include diff --git a/src/seccomp/action/SeccompAction.cc b/src/seccomp/action/SeccompAction.cc index e5d1084..46b50e2 100644 --- a/src/seccomp/action/SeccompAction.cc +++ b/src/seccomp/action/SeccompAction.cc @@ -1,5 +1,7 @@ #include "SeccompAction.h" +#include + namespace s2j { namespace seccomp { namespace action { diff --git a/src/seccomp/action/SeccompAction.h b/src/seccomp/action/SeccompAction.h index 4c15e5e..874a4cb 100644 --- a/src/seccomp/action/SeccompAction.h +++ b/src/seccomp/action/SeccompAction.h @@ -3,6 +3,7 @@ #include "tracer/TraceAction.h" #include "tracer/Tracee.h" +#include #include namespace s2j { diff --git a/src/seccomp/filter/LibSeccompFilter.cc b/src/seccomp/filter/LibSeccompFilter.cc index f4fb4b7..dc107f0 100644 --- a/src/seccomp/filter/LibSeccompFilter.cc +++ b/src/seccomp/filter/LibSeccompFilter.cc @@ -1,6 +1,7 @@ #include "LibSeccompFilter.h" #include +#include #include namespace s2j { diff --git a/src/seccomp/filter/LibSeccompFilter.h b/src/seccomp/filter/LibSeccompFilter.h index 95e06f6..852e0d6 100644 --- a/src/seccomp/filter/LibSeccompFilter.h +++ b/src/seccomp/filter/LibSeccompFilter.h @@ -4,6 +4,7 @@ #include +#include #include namespace s2j { diff --git a/src/tracer/TraceExecutor.cc b/src/tracer/TraceExecutor.cc index d4f72bb..16eeebb 100644 --- a/src/tracer/TraceExecutor.cc +++ b/src/tracer/TraceExecutor.cc @@ -9,6 +9,7 @@ #include #include +#include namespace s2j { namespace tracer { diff --git a/src/tracer/TraceExecutor.h b/src/tracer/TraceExecutor.h index 57787f6..95f0aee 100644 --- a/src/tracer/TraceExecutor.h +++ b/src/tracer/TraceExecutor.h @@ -10,6 +10,7 @@ #include "executor/ExecuteEventListener.h" #include "printer/OutputSource.h" +#include #include #include #include diff --git a/src/tracer/Tracee.cc b/src/tracer/Tracee.cc index 288bf6e..d32807d 100644 --- a/src/tracer/Tracee.cc +++ b/src/tracer/Tracee.cc @@ -7,6 +7,7 @@ #include #include +#include namespace s2j { namespace tracer { diff --git a/src/tracer/Tracee.h b/src/tracer/Tracee.h index ab3236c..3e32875 100644 --- a/src/tracer/Tracee.h +++ b/src/tracer/Tracee.h @@ -2,6 +2,7 @@ #include "ProcessInfo.h" +#include #include #include