aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/test/call_stack.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/call_stack.cpp')
-rw-r--r--test/call_stack.cpp37
1 files changed, 2 insertions, 35 deletions
diff --git a/test/call_stack.cpp b/test/call_stack.cpp
index 25f3985..e14f744 100644
--- a/test/call_stack.cpp
+++ b/test/call_stack.cpp
@@ -1,45 +1,12 @@
-#include "pdb/all.hpp"
+#include <test_lib.hpp>
-#include <boost/config.hpp>
#include <boost/nowide/iostream.hpp>
#include <exception>
-namespace test {
-
-typedef void (*F)();
-
-void call_stack() {
- const auto dbghelp = pdb::DbgHelp::current_process();
- const auto call_stack = pdb::CallStack::capture();
- call_stack.dump(boost::nowide::cout, dbghelp);
-}
-
-// Some tricks to prevent the functions from being inlined follow...
-void baz() {
- boost::nowide::cout << "baz " << &baz << '\n';
- F f = &call_stack;
- f();
-}
-
-void bar() {
- boost::nowide::cout << "bar " << &bar << '\n';
- F f = &baz;
- f();
-}
-
-void foo() {
- boost::nowide::cout << "foo " << &foo << '\n';
- F f = &bar;
- f();
-}
-
-} // namespace test
-
int main() {
try {
- test::F f = &test::foo;
- f();
+ test::print_call_stack();
} catch (const std::exception& e) {
boost::nowide::cerr << e.what() << '\n';
return 1;