#pragma once #ifdef OS_LINUX /// Because of 'sigqueue' functions and RT signals. #include #include #include namespace DB { class Context; /// Allows to introspect stack trace of all server threads. /// It acts like an embedded debugger. /// More than one instance of this table cannot be used. class StorageSystemStackTrace final : public ext::shared_ptr_helper, public IStorageSystemOneBlock { friend struct ext::shared_ptr_helper; public: String getName() const override { return "SystemStackTrace"; } static NamesAndTypesList getNamesAndTypes(); StorageSystemStackTrace(const String & name_); protected: using IStorageSystemOneBlock::IStorageSystemOneBlock; void fillData(MutableColumns & res_columns, const Context & context, const SelectQueryInfo & query_info) const override; mutable std::mutex mutex; }; } #endif