mirror of
https://github.com/NixOS/nix.git
synced 2025-11-29 05:31:00 +01:00
* It is tough to contribute to a project that doesn't use a formatter, * It is extra hard to contribute to a project which has configured the formatter, but ignores it for some files * Code formatting makes it harder to hide obscure / weird bugs by accident or on purpose, Let's rip the bandaid off? Note that PRs currently in flight should be able to be merged relatively easily by applying `clang-format` to their tip prior to merge.
25 lines
628 B
C++
25 lines
628 B
C++
#pragma once
|
|
///@file
|
|
|
|
#include "nix/expr/eval.hh"
|
|
#include "nix/expr/eval-profiler.hh"
|
|
|
|
namespace nix {
|
|
|
|
class FunctionCallTrace : public EvalProfiler
|
|
{
|
|
Hooks getNeededHooksImpl() const override
|
|
{
|
|
return Hooks().set(preFunctionCall).set(postFunctionCall);
|
|
}
|
|
|
|
public:
|
|
FunctionCallTrace() = default;
|
|
|
|
[[gnu::noinline]] void
|
|
preFunctionCallHook(EvalState & state, const Value & v, std::span<Value *> args, const PosIdx pos) override;
|
|
[[gnu::noinline]] void
|
|
postFunctionCallHook(EvalState & state, const Value & v, std::span<Value *> args, const PosIdx pos) override;
|
|
};
|
|
|
|
} // namespace nix
|