mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 15:20:56 -06:00
misc: Added utility method to allow working with stacks
This commit is contained in:
@@ -438,6 +438,19 @@ void cmListFileBacktrace::PrintCallStack(std::ostream& out) const
|
||||
}
|
||||
}
|
||||
|
||||
size_t cmListFileBacktrace::Depth() const
|
||||
{
|
||||
size_t depth = 0;
|
||||
if (this->Cur == nullptr) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
for (Entry* i = this->Cur->Up; i; i = i->Up) {
|
||||
depth++;
|
||||
}
|
||||
return depth;
|
||||
}
|
||||
|
||||
std::ostream& operator<<(std::ostream& os, cmListFileContext const& lfc)
|
||||
{
|
||||
os << lfc.FilePath;
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "cmConfigure.h" // IWYU pragma: keep
|
||||
|
||||
#include <iosfwd>
|
||||
#include <stddef.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
@@ -138,6 +139,9 @@ public:
|
||||
// Print the call stack below the top of the backtrace.
|
||||
void PrintCallStack(std::ostream& out) const;
|
||||
|
||||
// Get the number of 'frames' in this backtrace
|
||||
size_t Depth() const;
|
||||
|
||||
private:
|
||||
struct Entry;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user