--- slug: /ja/operations/system-tables/stack_trace --- # stack_trace すべてのサーバースレッドのスタックトレースを含みます。開発者がサーバーの状態を調査するのを可能にします。 スタックフレームを解析するには、`addressToLine`、`addressToLineWithInlines`、`addressToSymbol` そして `demangle` [イントロスペクション関数](../../sql-reference/functions/introspection.md)を使用します。 カラム: - `thread_name` ([String](../../sql-reference/data-types/string.md)) — スレッド名。 - `thread_id` ([UInt64](../../sql-reference/data-types/int-uint.md)) — スレッド識別子。 - `query_id` ([String](../../sql-reference/data-types/string.md)) — [query_log](../system-tables/query_log.md) システムテーブルから実行中のクエリの詳細を取得するために使用できるクエリ識別子。 - `trace` ([Array(UInt64)](../../sql-reference/data-types/array.md)) — メソッドが格納されている物理アドレスのリストを表す[スタックトレース](https://en.wikipedia.org/wiki/Stack_trace)。 :::tip いくつかの便利なクエリ(たとえば[現在実行中のスレッドを確認する方法](https://clickhouse.com/docs/knowledgebase/find-expensive-queries) と [トラブルシューティングに役立つクエリ](https://clickhouse.com/docs/knowledgebase/useful-queries-for-troubleshooting))については、ナレッジベースを確認してください。 ::: **例** イントロスペクション関数を有効にする: ``` sql SET allow_introspection_functions = 1; ``` ClickHouseオブジェクトファイルからシンボルを取得する: ``` sql WITH arrayMap(x -> demangle(addressToSymbol(x)), trace) AS all SELECT thread_name, thread_id, query_id, arrayStringConcat(all, '\n') AS res FROM system.stack_trace LIMIT 1 \G; ``` ``` text Row 1: ────── thread_name: QueryPipelineEx thread_id: 743490 query_id: dc55a564-febb-4e37-95bb-090ef182c6f1 res: memcpy large_ralloc arena_ralloc do_rallocx Allocator::realloc(void*, unsigned long, unsigned long, unsigned long) HashTable, HashTableNoState, PairNoInit>, HashCRC32, HashTableGrowerWithPrecalculation<8ul>, Allocator>::resize(unsigned long, unsigned long) void DB::Aggregator::executeImplBatch, HashTableNoState, PairNoInit>, HashCRC32, HashTableGrowerWithPrecalculation<8ul>, Allocator>, true, false>>(DB::AggregationMethodOneNumber, HashTableNoState, PairNoInit>, HashCRC32, HashTableGrowerWithPrecalculation<8ul>, Allocator>, true, false>&, DB::AggregationMethodOneNumber, HashTableNoState, PairNoInit>, HashCRC32, HashTableGrowerWithPrecalculation<8ul>, Allocator>, true, false>::State&, DB::Arena*, unsigned long, unsigned long, DB::Aggregator::AggregateFunctionInstruction*, bool, char*) const DB::Aggregator::executeImpl(DB::AggregatedDataVariants&, unsigned long, unsigned long, std::__1::vector>&, DB::Aggregator::AggregateFunctionInstruction*, bool, bool, char*) const DB::Aggregator::executeOnBlock(std::__1::vector::immutable_ptr, std::__1::allocator::immutable_ptr>>, unsigned long, unsigned long, DB::AggregatedDataVariants&, std::__1::vector>&, std::__1::vector>, std::__1::allocator>>>&, bool&) const DB::AggregatingTransform::work() DB::ExecutionThreadContext::executeTask() DB::PipelineExecutor::executeStepImpl(unsigned long, std::__1::atomic*) void std::__1::__function::__policy_invoker::__call_impl>(std::__1::__function::__policy_storage const*) ThreadPoolImpl>::worker(std::__1::__list_iterator, void*>) void std::__1::__function::__policy_invoker::__call_impl::ThreadFromGlobalPoolImpl>::scheduleImpl(std::__1::function, Priority, std::__1::optional, bool)::'lambda0'()>(void&&)::'lambda'(), void ()>>(std::__1::__function::__policy_storage const*) void* std::__1::__thread_proxy[abi:v15000]>, void ThreadPoolImpl::scheduleImpl(std::__1::function, Priority, std::__1::optional, bool)::'lambda0'()>>(void*) ``` ClickHouseソースコード内のファイル名と行番号を取得する: ``` sql WITH arrayMap(x -> addressToLine(x), trace) AS all, arrayFilter(x -> x LIKE '%/dbms/%', all) AS dbms SELECT thread_name, thread_id, query_id, arrayStringConcat(notEmpty(dbms) ? dbms : all, '\n') AS res FROM system.stack_trace LIMIT 1 \G; ``` ``` text Row 1: ────── thread_name: clickhouse-serv thread_id: 686 query_id: cad353e7-1c29-4b2e-949f-93e597ab7a54 res: /lib/x86_64-linux-gnu/libc-2.27.so /build/obj-x86_64-linux-gnu/../src/Storages/System/StorageSystemStackTrace.cpp:182 /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/vector:656 /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectQuery.cpp:1338 /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectQuery.cpp:751 /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/optional:224 /build/obj-x86_64-linux-gnu/../src/Interpreters/InterpreterSelectWithUnionQuery.cpp:192 /build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:384 /build/obj-x86_64-linux-gnu/../src/Interpreters/executeQuery.cpp:643 /build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:251 /build/obj-x86_64-linux-gnu/../src/Server/TCPHandler.cpp:1197 /build/obj-x86_64-linux-gnu/../contrib/poco/Net/src/TCPServerConnection.cpp:57 /build/obj-x86_64-linux-gnu/../contrib/libcxx/include/atomic:856 /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/include/Poco/Mutex_POSIX.h:59 /build/obj-x86_64-linux-gnu/../contrib/poco/Foundation/include/Poco/AutoPtr.h:223 /lib/x86_64-linux-gnu/libpthread-2.27.so /lib/x86_64-linux-gnu/libc-2.27.so ``` **関連項目** - [イントロスペクション関数](../../sql-reference/functions/introspection.md) — 利用可能なイントロスペクション関数とその使用法について。 - [system.trace_log](../system-tables/trace_log.md) — サンプリングクエリプロファイラによって収集されたスタックトレースを含む。 - [arrayMap](../../sql-reference/functions/array-functions.md#array-map) — `arrayMap` 関数の説明と使用例。 - [arrayFilter](../../sql-reference/functions/array-functions.md#array-filter) — `arrayFilter` 関数の説明と使用例。