Skip to content

Commit 1aac622

Browse files
authored
Merge pull request #270 from microblink/master
When `_Unwind_Backtrace` never calls the callback,
2 parents abd898a + 1d43bfe commit 1aac622

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

backward.hpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,12 @@ template <typename F> class Unwinder {
810810
_index = -1;
811811
_depth = depth;
812812
_Unwind_Backtrace(&this->backtrace_trampoline, this);
813-
return static_cast<size_t>(_index);
813+
if (_index == -1) {
814+
// _Unwind_Backtrace has failed to obtain any backtraces
815+
return 0;
816+
} else {
817+
return static_cast<size_t>(_index);
818+
}
814819
}
815820

816821
private:
@@ -3614,11 +3619,11 @@ template <> class TraceResolverImpl<system_tag::windows_tag>
36143619
symOptions |= SYMOPT_LOAD_LINES | SYMOPT_UNDNAME;
36153620
SymSetOptions(symOptions);
36163621
EnumProcessModules(process, &module_handles[0],
3617-
static_cast<DWORD>(module_handles.size() * sizeof(HMODULE)),
3622+
static_cast<DWORD>(module_handles.size() * sizeof(HMODULE)),
36183623
&cbNeeded);
36193624
module_handles.resize(cbNeeded / sizeof(HMODULE));
36203625
EnumProcessModules(process, &module_handles[0],
3621-
static_cast<DWORD>(module_handles.size() * sizeof(HMODULE)),
3626+
static_cast<DWORD>(module_handles.size() * sizeof(HMODULE)),
36223627
&cbNeeded);
36233628
std::transform(module_handles.begin(), module_handles.end(),
36243629
std::back_inserter(modules), get_mod_info(process));

0 commit comments

Comments
 (0)