diff --git a/mitimon/src/symbols.cpp b/mitimon/src/symbols.cpp index efa8a4b..b3ab73b 100644 --- a/mitimon/src/symbols.cpp +++ b/mitimon/src/symbols.cpp @@ -8,9 +8,11 @@ #include "symbols.h" #include "winkrabs.h" +std::atomic Symbolicator::nextSymbolicatorId{ 1 }; + Symbolicator::Symbolicator(const ProcessData&& processData, const std::wstring& symDir, const std::wstring& symPath) : mProcessData{ processData }, - mProcess{ reinterpret_cast(processData.pid()) }, + mProcess{ reinterpret_cast(nextSymbolicatorId++) }, mModuleMap{} { ::SymSetOptions(SYMOPT_IGNORE_NT_SYMPATH); diff --git a/mitimon/src/symbols.h b/mitimon/src/symbols.h index ad3ae09..bb820d2 100644 --- a/mitimon/src/symbols.h +++ b/mitimon/src/symbols.h @@ -30,6 +30,9 @@ class Symbolicator { std::unordered_map mModuleMap; bool load(const ImageData& imageData); + +private: + static std::atomic nextSymbolicatorId; }; #endif // SYMBOLS_H