diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2020-03-21 20:18:19 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2020-03-21 20:19:38 +0300 |
commit | 5dc92e796291992dd81567cf5cb58624f58d0e43 (patch) | |
tree | e67905a908486d1aa55fefc15df40b40f43346e6 /include/pdb | |
parent | test: foobar -> symbols (diff) | |
download | winapi-debug-5dc92e796291992dd81567cf5cb58624f58d0e43.tar.gz winapi-debug-5dc92e796291992dd81567cf5cb58624f58d0e43.zip |
CallStack: overhaul the API
Diffstat (limited to 'include/pdb')
-rw-r--r-- | include/pdb/call_stack.hpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/include/pdb/call_stack.hpp b/include/pdb/call_stack.hpp index 968b1b8..f0e13af 100644 --- a/include/pdb/call_stack.hpp +++ b/include/pdb/call_stack.hpp @@ -14,6 +14,8 @@ #include <array> #include <cstddef> +#include <functional> +#include <ostream> #include <string> namespace pdb { @@ -31,6 +33,13 @@ public: static CallStack capture(); + using AddressCallback = std::function<bool(Address)>; + bool for_each_address(const AddressCallback& callback) const; + + static std::string pretty_print_address(const DbgHelp& dbghelp, Address addr); + + void dump(std::ostream& os, const DbgHelp&) const; + const std::array<Address, max_length> frames; const std::size_t length; @@ -38,9 +47,4 @@ private: CallStack() = default; }; -namespace call_stack { - -std::string pretty_print_address(const DbgHelp& dbghelp, Address addr); - -} // namespace call_stack } // namespace pdb |