boostorg / stacktrace

C++ library for storing and printing backtraces.
https://boost.org/libs/stacktrace
433 stars 74 forks source link

dbgeng.dll loading error #106

Closed LukeMauldin closed 1 month ago

LukeMauldin commented 3 years ago

Compiler: MSVC 2019 - 16.8.5 x64 Operating system: Windows Server 2019 Build Mode: Release with Debug Info Boost version: 1.74.0

When trying to use boost stacktrace functionality on Windows in an executable, the executable builds, links, and runs as expected and the application stack trace is displayed as expected. When trying to use boost stacktrace functionality in a .DLL, the follow error messaging is presented by the application on DLL load time: The original 1002 could not be located in the dynamic link library C:\Windows\SYSTEM32\dbgeng.dll. I have verified that the DLL exists and like I mentioned previously, the boost stacktrace functionality does work in an executable. I have tried building boost stacktrace as both a header only library and linking in as a .dll using the define: BOOST_STACKTRACE_LINK.

oold commented 1 year ago

The original 1002

Shouldn't that be the "ordinal 1002"?

Basically, the entry point is missing in dbgeng.dll. I've seen this before when trying to run an executable that consumes Boost.Stacktrace on another machine. Seems that it's not safe to link against Stacktrace and run the resulting binary on any machine other than the machine it was built on (for Windows targets).

apolukhin commented 1 month ago

Try to make a minimized reproducer of the problem and report it to the Windows/MS developers team