diff options
author | Augusto Righetto <aurighet@microsoft.com> | 2020-03-03T15·26-0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-03T15·26-0500 |
commit | 06f0e767d13d4d68071c4fc51e25724e0fc8bc74 (patch) | |
tree | cac234809927e0ea5c0c5c8bfd76dea4a31ea7dc /absl/debugging/internal/stacktrace_win32-inl.inc | |
parent | bcefbdcdf6ad85046ccacee0aeffba5404d3e528 (diff) |
BuildBreak: UWP apps can't call GetModuleHandle (#596)
* BuildBreak: UWP apps can't call GetModuleHandle It is not possible to load RtlCaptureStackBackTrace at static init time in UWP. CaptureStackBackTrace is the public version of RtlCaptureStackBackTrace. * Using WINAPI_FAMILY_PARTITION family of macros Using WINAPI_FAMILY_PARTITION family of macros for detecting when building for UWP or Desktop. * Simplifying comment to please lint tool.
Diffstat (limited to '')
-rw-r--r-- | absl/debugging/internal/stacktrace_win32-inl.inc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/absl/debugging/internal/stacktrace_win32-inl.inc b/absl/debugging/internal/stacktrace_win32-inl.inc index 9c2c558044d8..af4578a506b0 100644 --- a/absl/debugging/internal/stacktrace_win32-inl.inc +++ b/absl/debugging/internal/stacktrace_win32-inl.inc @@ -46,11 +46,19 @@ typedef USHORT NTAPI RtlCaptureStackBackTrace_Function( OUT PVOID *backtrace, OUT PULONG backtrace_hash); +// It is not possible to load RtlCaptureStackBackTrace at static init time in +// UWP. CaptureStackBackTrace is the public version of RtlCaptureStackBackTrace +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && \ + !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +static RtlCaptureStackBackTrace_Function* const RtlCaptureStackBackTrace_fn = + &::CaptureStackBackTrace; +#else // Load the function we need at static init time, where we don't have // to worry about someone else holding the loader's lock. static RtlCaptureStackBackTrace_Function* const RtlCaptureStackBackTrace_fn = (RtlCaptureStackBackTrace_Function*) GetProcAddress(GetModuleHandleA("ntdll.dll"), "RtlCaptureStackBackTrace"); +#endif // WINAPI_PARTITION_APP && !WINAPI_PARTITION_DESKTOP template <bool IS_STACK_FRAMES, bool IS_WITH_CONTEXT> static int UnwindImpl(void** result, int* sizes, int max_depth, int skip_count, |