3 * Copyright 2020 the gRPC authors.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
19 #ifndef GRPC_TEST_CORE_UTIL_EXAMINE_STACK_H
20 #define GRPC_TEST_CORE_UTIL_EXAMINE_STACK_H
22 #include <grpc/support/port_platform.h>
29 // Returns the current stack trace as a string. To have symbolized stack-traces,
30 // InitializeStackTracer needs to be called beforehand.
32 // Example of stack-trace is
34 // @ 0x405b0f 192 StackTracerTest_Basic_Test::TestBody()
35 // @ 0x7fbace6baf75 288 testing::internal::RunAllTests()
36 // @ 0x7fbace6baa93 144 testing::UnitTest::Run()
39 std::string GetCurrentStackTrace();
41 // Initializes a stack tracer so that GetCurrentStackTrace can work.
42 // This inits debug symbols and sets this as a gRPC stack-trace provider.
43 void InitializeStackTracer(const char* argv0);
45 } // namespace testing
46 } // namespace grpc_core
48 #endif /* GRPC_TEST_CORE_UTIL_EXAMINE_STACK_H */