-
Notifications
You must be signed in to change notification settings - Fork 438
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUILD] Link failure using x64 Windows DLL #2202
Comments
Thanks for the report. Analysis:
Instead or exporting the entire implementation, a better fix would be to:
Likewise for every option struct. |
Related to: which is a pre requisite to deliver shared libraries. |
This issue was marked as stale due to lack of activity. |
@marcalff Hello i gave building this another go since seeing that some work is being done (045be9c). Unfortunately it gets a linking error at the very end when it's making the dll (i think). I'm building it with ninja this time instead of visual studio/msbuild. Environment Steps to reproduce
my terminal output
|
Hi @Dangeroustuber and @meastp I can confirm that there are linker errors when building the DLL with -DWITH_STL=ON. LNK2001 is supposed to mean that the function definition is not found. I'm new to this project, so any help from the maintainers is appreciated. |
Thanks @Dangeroustuber and @meastp for bringing this to my issue. I think I have found the cause of the linker errors. The function definitions for MeterSelectorFactory::Create and InstrumentSelectorFactory::Create are different for the nostd and stl builds. Cmake build WITH_STL=OFF:
CMake build WITH_STL=ON:
There are also a bunch of linker errors when attempting to build the dll even after patching the new definitions in and compiling the examples.
Every linker error is related to exporting of HttpExporterOptions related members. I'm assuming I can solve this by adding a few |
Thanks @perhapsmaple for the analysis. About all the link errors involving and in particular to move all the calls to get defaults from the option header to the cc file. |
Reopening as #2387 fixes it partially. |
With #2388 being merged i tried this again. There are still some errors that occur during build on windows. Initially i built with almost everything off, and that does manage to link and fully build. I tried to use it in the code and it gave symbol errors when attempting to use code from basic traces example. So now i've built with http_examples, examples, func_tests and so on. The error from the traces example code (traces and logs worked before, it was metrics that was the problem) was just a single error, but building more things shows that other problems would have come up. EDIT: Environment: Steps to reproduce:
output from ninja from first failure onwards:
|
WITH_ABI_VERSION_2 is still experimental, unstable, and no abi v2 symbol are exported currently. Please use abi v1 for now. |
Should i make a seperate issue for the trace error i am having? The library has compiled just fine i think, but it gives me |
We can use this issue number, no need to create a different one. Is Sorry I missed it in all the logs. cc @perhapsmaple , if you want to provide the fix for the export (I still don't have windows). |
I'm able to build the DLL and run the
Here is my CMake configuration for reference:
From what I can see in the CI, all three of the examples were built and ran successfully. |
Okey. Then i will take a look at my setup some more. I am using it through a custom vcpkg registry and a custom port with visual studio. This is the portfile:
It does build successfully, so i'll have to take a closer look at what is going on. I will probably turn on for it to build tests first and see what happends. |
Hello, i have been testing this for a bit now and i still don't think it works. It does build and the examples run successfully when i put the dll in the folder of the example. I've been running the simple trace example. One thing to note about the examples is that they don't define the DLL macro even when they are including an api header. I still build it with ninja and these following options:
In visual studio i set the include paths for the api, sdk and the exporter for ostream. Then i put the DLL in the same folder as the exe. The c++ version is set to C++20 and i define some macros to deal with errors regarding std::result_of being deprecated. The problem comes when i want to compile something such as this simple program with visual studo:
For this i get the following list of errors:
Any help is appreciated. I don't quite understand what is going on here (considering the examples built by ninja build and run). If someone else could try this similar setup and see what happends that would be great! Let me know if i have forgotten a step to getting this to work or i am testing it wrong in any way. |
Update:
After some more testing, i think the only missing actual symbol is SetTracerProvider family of functions (setlogger, setmetric). Those are not present in the opentelemetry_cpp.src file in the ext/dll folder on the master branch. That would fix the issue i'm having i believe. |
@ThomsonTan Since PR #2450 was merged recently, would it be possible to also add a pipeline defining We are still struggling with this issue, and this information (whether it does build and run in CI) would be very useful. |
@meastp we do have pipeline which ensures examples/tests run successfully for DLL build as below. Probably the it is that the function you listed like opentelemetry-cpp/ci/do_ci.ps1 Line 77 in e8afbb8
Update: I saw C++ 20 is mentioned above. I'll add a new CI run for C++ 20 with DLL build. |
@ThomsonTan @marcalff @perhapsmaple I still think the link error we get is correct. Investigated some more, and think I found the culprit - see #2471. :) |
@ThomsonTan @marcalff @perhapsmaple Finally, I found the reason for the build failure: missing definition of Hopefully, all build issues are resolved now.
|
Environment
Using main branch
x64 Windows 10
Microsoft Visual Studio Enterprise 2022 (64-bit) - 17.6.2
Steps to reproduce
What is the expected behavior?
Successful compilation.
from the docs:
NOTE: the current build produces a single DLL which includes API, SDK and exporters. This MAY change in future.
What is the actual behavior?
Error during compilation
2>xxx.obj : error LNK2019: unresolved external symbol "class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl opentelemetry::v1::exporter::otlp::GetOtlpDefaultHttpTracesEndpoint(void)" (?GetOtlpDefaultHttpTracesEndpoint@otlp@exporter@v1@opentelemetry@@ya?AV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@xz) referenced in function "class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl opentelemetry::v1::exporter::otlp::GetOtlpDefaultHttpEndpoint(void)" (?GetOtlpDefaultHttpEndpoint@otlp@exporter@v1@opentelemetry@@ya?AV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@xz)
2>xxx.obj : error LNK2019: unresolved external symbol "class std::chrono::duration<__int64,struct std::ratio<1,10000000> > __cdecl opentelemetry::v1::exporter::otlp::GetOtlpDefaultTracesTimeout(void)" (?GetOtlpDefaultTracesTimeout@otlp@exporter@v1@opentelemetry@@ya?AV?$duration@_JU?$ratio@$00$0JIJGIA@@std@@@chrono@std@@xz) referenced in function "class std::chrono::duration<__int64,struct std::ratio<1,10000000> > __cdecl opentelemetry::v1::exporter::otlp::GetOtlpDefaultTimeout(void)" (?GetOtlpDefaultTimeout@otlp@exporter@v1@opentelemetry@@ya?AV?$duration@_JU?$ratio@$00$0JIJGIA@@std@@@chrono@std@@xz)
2>xxx.obj : error LNK2019: unresolved external symbol "class std::multimap<class std::basic_string<char,struct std::char_traits,class std::allocator >,class std::basic_string<char,struct std::char_traits,class std::allocator >,struct opentelemetry::v1::exporter::otlp::cmp_ic,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits,class std::allocator > const ,class std::basic_string<char,struct std::char_traits,class std::allocator > > > > __cdecl opentelemetry::v1::exporter::otlp::GetOtlpDefaultTracesHeaders(void)" (?GetOtlpDefaultTracesHeaders@otlp@exporter@v1@opentelemetry@@ya?AV?$multimap@V?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@v12@Ucmp_ic@otlp@exporter@v1@opentelemetry@@v?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@v12@@std@@@2@@std@@xz) referenced in function "class std::multimap<class std::basic_string<char,struct std::char_traits,class std::allocator >,class std::basic_string<char,struct std::char_traits,class std::allocator >,struct opentelemetry::v1::exporter::otlp::cmp_ic,class std::allocator<struct std::pair<class std::basic_string<char,struct std::char_traits,class std::allocator > const ,class std::basic_string<char,struct std::char_traits,class std::allocator > > > > __cdecl opentelemetry::v1::exporter::otlp::GetOtlpDefaultHeaders(void)" (?GetOtlpDefaultHeaders@otlp@exporter@v1@opentelemetry@@ya?AV?$multimap@V?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@v12@Ucmp_ic@otlp@exporter@v1@opentelemetry@@v?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@v?$allocator@D@2@@std@@v12@@std@@@2@@std@@xz)
2>C:\xxx\x64\Debug\xxx.exe : fatal error LNK1120: 3 unresolved externals
In dependency walker these are the symbols in the DLL:
1 (0x0001), (0x), int
public: static class std::shared_ptr<class opentelemetry::v1::trace::TraceState> __cdecl opentelemetry::v1::trace::TraceState::GetDefault(void)'::
2'::$TSS0, 0x001ea974, Microsoft2 (0x0002), (0x), TSS0<`template-parameter-2',opentelemetry::v1::trace::Provider::tLock,signed char,unsigned char &,void const opentelemetry::v1::common::SpinLockMutex::&,int, ?? &>, 0x001eab04, Microsoft
3 (0x0003), (0x), TSS0<`template-parameter-2',opentelemetry::v1::trace::Provider::tProvider,signed char,unsigned char &,void const std::shared_ptr::&,int, ?? &>, 0x001eaafc, Microsoft
4 (0x0004), (0x), TSS0<`template-parameter-2',opentelemetry::v1::context::RuntimeContext::tStorage,signed char,unsigned char &,void const std::shared_ptr::&,int, ?? &>, 0x001ea924, Microsoft
5 (0x0005), (0x), int
private: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidKeyRegEx(class std::basic_string_view<char,struct std::char_traits<char> >)'::
2'::$TSS0, 0x001ea9ec, Microsoft6 (0x0006), (0x), int
private: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidValueRegEx(class std::basic_string_view<char,struct std::char_traits<char> >)'::
2'::$TSS0, 0x001eaacc, Microsoft7 (0x0007), (0x), int
public: virtual class std::shared_ptr<class opentelemetry::v1::trace::Span> __cdecl opentelemetry::v1::trace::NoopTracer::StartSpan(class std::basic_string_view<char,struct std::char_traits<char> >,class opentelemetry::v1::common::KeyValueIterable const & __ptr64,class opentelemetry::v1::trace::SpanContextKeyValueIterable const & __ptr64,struct opentelemetry::v1::trace::StartSpanOptions const & __ptr64) __ptr64'::
2'::$TSS0, 0x001eaae4, Microsoft8 (0x0008), (0x), int
private: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidKeyRegEx(class std::basic_string_view<char,struct std::char_traits<char> >)'::
2'::$TSS1, 0x001eaa5c, Microsoft9 (0x0009), (0x), protected: __cdecl std::enable_shared_from_this::enable_shared_from_this(class std::enable_shared_from_this const & __ptr64) __ptr64, 0x00001cf8, Microsoft
10 (0x000a), (0x), protected: __cdecl std::enable_shared_from_this::enable_shared_from_this(void) __ptr64, 0x00004aac, Microsoft
11 (0x000b), (0x), public: __cdecl opentelemetry::v1::trace::NoopSpan::NoopSpan(class std::shared_ptr const & __ptr64) __ptr64, 0x0000ae20, Microsoft
12 (0x000c), (0x), public: __cdecl opentelemetry::v1::trace::NoopSpan::NoopSpan(class std::shared_ptr const & __ptr64,class std::unique_ptr<class opentelemetry::v1::trace::SpanContext,struct std::default_delete >) __ptr64, 0x00006226, Microsoft
13 (0x000d), (0x), public: __cdecl opentelemetry::v1::trace::NoopTracer::NoopTracer(class opentelemetry::v1::trace::NoopTracer && __ptr64) __ptr64, 0x000030c1, Microsoft
14 (0x000e), (0x), public: __cdecl opentelemetry::v1::trace::NoopTracer::NoopTracer(class opentelemetry::v1::trace::NoopTracer const & __ptr64) __ptr64, 0x0000a8ee, Microsoft
15 (0x000f), (0x), public: __cdecl opentelemetry::v1::trace::NoopTracer::NoopTracer(void) __ptr64, 0x00008a0d, Microsoft
16 (0x0010), (0x), public: __cdecl opentelemetry::v1::trace::NoopTracerProvider::NoopTracerProvider(class
opentelemetry::v1::trace::NoopTracerProvider && __ptr64) __ptr64, 0x00004782, Microsoft
17 (0x0011), (0x), public: __cdecl opentelemetry::v1::trace::NoopTracerProvider::NoopTracerProvider(class opentelemetry::v1::trace::NoopTracerProvider const & __ptr64) __ptr64, 0x00001b68, Microsoft
18 (0x0012), (0x), public: __cdecl opentelemetry::v1::trace::NoopTracerProvider::NoopTracerProvider(void) __ptr64, 0x00006992, Microsoft
19 (0x0013), (0x), public: __cdecl opentelemetry::v1::context::RuntimeContextStorage::RuntimeContextStorage(class opentelemetry::v1::context::RuntimeContextStorage const & __ptr64) __ptr64, 0x000079af, Microsoft
20 (0x0014), (0x), public: __cdecl opentelemetry::v1::context::RuntimeContextStorage::RuntimeContextStorage(void) __ptr64, 0x0000b186, Microsoft
21 (0x0015), (0x), private: __cdecl opentelemetry::v1::trace::TraceState::TraceState(void) __ptr64, 0x000052a9, Microsoft
22 (0x0016), (0x), private: __cdecl opentelemetry::v1::trace::TraceState::TraceState(unsigned __int64) __ptr64, 0x00002cde, Microsoft
23 (0x0017), (0x), public: __cdecl opentelemetry::v1::trace::TraceState::TraceState(class opentelemetry::v1::trace::TraceState && __ptr64) __ptr64, 0x00008d28, Microsoft
24 (0x0018), (0x), public: __cdecl opentelemetry::v1::trace::TracerProvider::TracerProvider(class opentelemetry::v1::trace::TracerProvider const & __ptr64) __ptr64, 0x000065dc, Microsoft
25 (0x0019), (0x), public: __cdecl opentelemetry::v1::trace::TracerProvider::TracerProvider(void) __ptr64, 0x00009fa2, Microsoft
26 (0x001a), (0x), protected: __cdecl std::enable_shared_from_this::~enable_shared_from_this(void) __ptr64,
0x00006d2f, Microsoft
27 (0x001b), (0x), public: virtual __cdecl opentelemetry::v1::trace::NoopSpan::~NoopSpan(void) __ptr64, 0x000015cd, Microsoft
28 (0x001c), (0x), public: virtual __cdecl opentelemetry::v1::trace::NoopTracer::~NoopTracer(void) __ptr64, 0x00003643, Microsoft
29 (0x001d), (0x), public: virtual __cdecl opentelemetry::v1::trace::NoopTracerProvider::~NoopTracerProvider(void) __ptr64, 0x0000a9c5, Microsoft
30 (0x001e), (0x), public: virtual __cdecl opentelemetry::v1::context::RuntimeContextStorage::~RuntimeContextStorage(void) __ptr64, 0x00005cfe, Microsoft
31 (0x001f), (0x), public: __cdecl opentelemetry::v1::trace::TraceState::~TraceState(void) __ptr64, 0x000053a8, Microsoft
32 (0x0020), (0x), public: virtual __cdecl opentelemetry::v1::trace::TracerProvider::~TracerProvider(void) __ptr64, 0x00006280, Microsoft
33 (0x0021), (0x), protected: class std::enable_shared_from_this & __ptr64 __cdecl std::enable_shared_from_this::operator=(class std::enable_shared_from_this const & __ptr64) __ptr64, 0x0000b550, Microsoft
34 (0x0022), (0x), public: class opentelemetry::v1::trace::NoopTracer & __ptr64 __cdecl opentelemetry::v1::trace::NoopTracer::operator=(class opentelemetry::v1::trace::NoopTracer && __ptr64) __ptr64, 0x00003c24, Microsoft
35 (0x0023), (0x), public: class opentelemetry::v1::trace::NoopTracer & __ptr64 __cdecl opentelemetry::v1::trace::NoopTracer::operator=
(class opentelemetry::v1::trace::NoopTracer const & __ptr64) __ptr64, 0x0000330f, Microsoft
36 (0x0024), (0x), public: class opentelemetry::v1::trace::NoopTracerProvider & __ptr64 __cdecl opentelemetry::v1::trace::NoopTracerProvider::operator=(class opentelemetry::v1::trace::NoopTracerProvider && __ptr64) __ptr64, 0x00009813, Microsoft
37 (0x0025), (0x), public: class opentelemetry::v1::trace::NoopTracerProvider & __ptr64 __cdecl opentelemetry::v1::trace::NoopTracerProvider::operator=(class opentelemetry::v1::trace::NoopTracerProvider const & __ptr64) __ptr64,
0x00004994, Microsoft
38 (0x0026), (0x), public: class opentelemetry::v1::trace::Provider & __ptr64 __cdecl opentelemetry::v1::trace::Provider::operator=(class opentelemetry::v1::trace::Provider && __ptr64) __ptr64, 0x0000a6b9, Microsoft
39 (0x0027), (0x), public: class opentelemetry::v1::trace::Provider & __ptr64 __cdecl opentelemetry::v1::trace::Provider::operator=(class opentelemetry::v1::trace::Provider const & __ptr64) __ptr64, 0x000085e4, Microsoft
40 (0x0028), (0x), public: class opentelemetry::v1::context::RuntimeContext & __ptr64 __cdecl opentelemetry::v1::context::RuntimeContext::operator=(class opentelemetry::v1::context::RuntimeContext && __ptr64) __ptr64, 0x000058b7, Microsoft
41 (0x0029), (0x), public: class opentelemetry::v1::context::RuntimeContext & __ptr64 __cdecl opentelemetry::v1::context::RuntimeContext::operator=(class opentelemetry::v1::context::RuntimeContext const & __ptr64) __ptr64, 0x000091dd, Microsoft
42 (0x002a), (0x), public: class opentelemetry::v1::context::RuntimeContextStorage & __ptr64 __cdecl opentelemetry::v1::context::RuntimeContextStorage::operator=(class opentelemetry::v1::context::RuntimeContextStorage const & __ptr64) __ptr64, 0x0000a40c, Microsoft
43 (0x002b), (0x), public: class opentelemetry::v1::trace::TraceState & __ptr64 __cdecl opentelemetry::v1::trace::TraceState::operator=(class opentelemetry::v1::trace::TraceState && __ptr64) __ptr64, 0x00008837, Microsoft
44 (0x002c), (0x), public: class opentelemetry::v1::trace::TracerProvider & __ptr64 __cdecl opentelemetry::v1::trace::TracerProvider::operator=(class opentelemetry::v1::trace::TracerProvider const & __ptr64) __ptr64, 0x00003170, Microsoft
45 (0x002d), (0x), const opentelemetry::v1::trace::NoopSpan::`vftable', 0x0016bdc8, Microsoft
46 (0x002e), (0x), const opentelemetry::v1::trace::NoopTracer::`vftable', 0x0016be40, Microsoft
47 (0x002f), (0x), const opentelemetry::v1::trace::NoopTracerProvider::`vftable', 0x0016be70, Microsoft
48 (0x0030), (0x), const opentelemetry::v1::context::RuntimeContextStorage::`vftable', 0x0016b9a8, Microsoft
49 (0x0031), (0x), const opentelemetry::v1::trace::TracerProvider::`vftable', 0x0016bda8, Microsoft
50 (0x0032), (0x), public: virtual void __cdecl opentelemetry::v1::trace::NoopSpan::AddEvent(class std::basic_string_view<char,struct std::char_traits >) __ptr64, 0x00009aed, Microsoft
51 (0x0033), (0x), public: virtual void __cdecl opentelemetry::v1::trace::NoopSpan::AddEvent(class std::basic_string_view<char,struct std::char_traits >,class opentelemetry::v1::common::KeyValueIterable const & __ptr64) __ptr64, 0x000094b2, Microsoft
52 (0x0034), (0x), public: virtual void __cdecl opentelemetry::v1::trace::NoopSpan::AddEvent(class std::basic_string_view<char,struct std::char_traits >,class opentelemetry::v1::common::SystemTimestamp) __ptr64, 0x000074f5, Microsoft
53 (0x0035), (0x), public: virtual void __cdecl opentelemetry::v1::trace::NoopSpan::AddEvent(class std::basic_string_view<char,struct std::char_traits >,class opentelemetry::v1::common::SystemTimestamp,class opentelemetry::v1::common::KeyValueIterable const & __ptr64) __ptr64, 0x00003d46, Microsoft
54 (0x0036), (0x), public: static class std::unique_ptr<class opentelemetry::v1::context::Token,struct std::default_delete > __cdecl opentelemetry::v1::context::RuntimeContext::Attach(class opentelemetry::v1::context::Context const & __ptr64), 0x0000933b, Microsoft
55 (0x0037), (0x), public: virtual void __cdecl opentelemetry::v1::trace::NoopTracer::CloseWithMicroseconds(unsigned __int64) __ptr64, 0x00004188, Microsoft
56 (0x0038), (0x), public: static class std::unique_ptr<class opentelemetry::v1::sdk::trace::SpanExporter,struct std::default_delete > __cdecl opentelemetry::v1::exporter::trace::OStreamSpanExporterFactory::Create(void), 0x00004fcf, Microsoft
57 (0x0039), (0x), public: static class std::unique_ptr<class opentelemetry::v1::sdk::trace::SpanExporter,struct std::default_delete > __cdecl opentelemetry::v1::exporter::otlp::OtlpHttpExporterFactory::Create(struct opentelemetry::v1::exporter::otlp::OtlpHttpExporterOptions const & __ptr64), 0x00006e60, Microsoft
58 (0x003a), (0x), public: static class std::unique_ptr<class opentelemetry::v1::sdk::trace::SpanProcessor,struct std::default_delete > __cdecl opentelemetry::v1::sdk::trace::SimpleSpanProcessorFactory::Create(class std::unique_ptr<class opentelemetry::v1::sdk::trace::SpanExporter,struct std::default_delete > && __ptr64), 0x000088f0, Microsoft
59 (0x003b), (0x), public: static class std::unique_ptr<class opentelemetry::v1::trace::TracerProvider,struct std::default_delete > __cdecl opentelemetry::v1::sdk::trace::TracerProviderFactory::Create(class std::unique_ptr<class opentelemetry::v1::sdk::trace::SpanProcessor,struct std::default_delete >), 0x000019d3, Microsoft
60 (0x003c), (0x), protected: class std::unique_ptr<class opentelemetry::v1::context::Token,struct std::default_delete > __cdecl opentelemetry::v1::context::RuntimeContextStorage::CreateToken(class opentelemetry::v1::context::Context const & __ptr64) __ptr64, 0x000043ef, Microsoft
61 (0x003d), (0x), public: class std::shared_ptr __cdecl opentelemetry::v1::trace::TraceState::Delete(class std::basic_string_view<char,struct std::char_traits > const & __ptr64) __ptr64, 0x0000777f, Microsoft
62 (0x003e), (0x), public: static bool __cdecl opentelemetry::v1::context::RuntimeContext::Detach(class opentelemetry::v1::context::Token & __ptr64), 0x00001e10, Microsoft
63 (0x003f), (0x), public: bool __cdecl opentelemetry::v1::trace::TraceState::Empty(void)const __ptr64, 0x00009e62, Microsoft
64 (0x0040), (0x), public: virtual void __cdecl opentelemetry::v1::trace::NoopSpan::End(struct opentelemetry::v1::trace::EndSpanOptions const & __ptr64) __ptr64, 0x00009d68, Microsoft
65 (0x0041), (0x), public: virtual void __cdecl opentelemetry::v1::trace::NoopTracer::ForceFlushWithMicroseconds(unsigned __int64) __ptr64, 0x00001753, Microsoft
66 (0x0042), (0x), public: static class std::shared_ptr __cdecl opentelemetry::v1::trace::TraceState::FromHeader(class std::basic_string_view<char,struct std::char_traits >), 0x000035b7, Microsoft
67 (0x0043), (0x), public: bool __cdecl opentelemetry::v1::trace::TraceState::Get(class std::basic_string_view<char,struct std::char_traits >,class std::basic_string<char,struct std::char_traits,class std::allocator > & __ptr64)const __ptr64, 0x000022b6, Microsoft
68 (0x0044), (0x), public: bool __cdecl opentelemetry::v1::trace::TraceState::GetAllEntries(class opentelemetry::v1::nostd::function_ref<bool __cdecl(class std::basic_string_view<char,struct std::char_traits >,class std::basic_string_view<char,struct std::char_traits >)>)const __ptr64, 0x00007f2c, Microsoft
69 (0x0045), (0x), public: static class std::shared_ptr __cdecl opentelemetry::v1::context::RuntimeContext::GetConstRuntimeContextStorage(void), 0x00006c67, Microsoft
70 (0x0046), (0x), public: virtual class opentelemetry::v1::trace::SpanContext __cdecl opentelemetry::v1::trace::NoopSpan::GetContext(void)const __ptr64, 0x000077ac, Microsoft
71 (0x0047), (0x), public: static class opentelemetry::v1::context::Context __cdecl opentelemetry::v1::context::RuntimeContext::GetCurrent(void), 0x00006ff0, Microsoft
72 (0x0048), (0x), public: static class std::shared_ptr __cdecl opentelemetry::v1::trace::TraceState::GetDefault(void), 0x0000a817, Microsoft
73 (0x0049), (0x), private: static class opentelemetry::v1::common::SpinLockMutex & __ptr64 __cdecl opentelemetry::v1::trace::Provider::GetLock(void), 0x000094ad, Microsoft
74 (0x004a), (0x), private: static class std::shared_ptr & __ptr64 __cdecl opentelemetry::v1::trace::Provider::GetProvider(void), 0x00001c94, Microsoft
75 (0x004b), (0x), private: static class std::shared_ptr __cdecl opentelemetry::v1::context::RuntimeContext::GetRuntimeContextStorage(void), 0x00004e49, Microsoft
76 (0x004c), (0x), private: static class std::shared_ptr & __ptr64 __cdecl opentelemetry::v1::context::RuntimeContext::GetStorage(void), 0x0000b36b, Microsoft
77 (0x004d), (0x), public: virtual class std::shared_ptr __cdecl opentelemetry::v1::trace::NoopTracerProvider::GetTracer(class std::basic_string_view<char,struct std::char_traits >,class
std::basic_string_view<char,struct std::char_traits >,class std::basic_string_view<char,struct std::char_traits >) __ptr64, 0x00004511, Microsoft
78 (0x004e), (0x), public: static class std::shared_ptr __cdecl opentelemetry::v1::trace::Provider::GetTracerProvider(void), 0x00005ac4, Microsoft
79 (0x004f), (0x), public: static class std::variant<struct std::monostate,bool,__int64,unsigned __int64,double,class std::shared_ptr,class std::shared_ptr,class std::shared_ptr > __cdecl opentelemetry::v1::context::RuntimeContext::GetValue(class std::basic_string_view<char,struct std::char_traits >,class opentelemetry::v1::context::Context * __ptr64), 0x00001280, Microsoft
80 (0x0050), (0x), private: static bool __cdecl opentelemetry::v1::trace::TraceState::IsLowerCaseAlphaOrDigit(char), 0x00008738, Microsoft
81 (0x0051), (0x), public: virtual bool __cdecl opentelemetry::v1::trace::NoopSpan::IsRecording(void)const __ptr64, 0x00009d1d, Microsoft
82 (0x0052), (0x), public: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidKey(class std::basic_string_view<char,struct std::char_traits >), 0x0000426e, Microsoft
83 (0x0053), (0x), private: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidKeyNonRegEx(class std::basic_string_view<char,struct std::char_traits >), 0x000074e1, Microsoft
84 (0x0054), (0x), private: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidKeyRegEx(class
std::basic_string_view<char,struct std::char_traits >), 0x000056b9, Microsoft
85 (0x0055), (0x), public: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidValue(class std::basic_string_view<char,struct std::char_traits >), 0x0000772a, Microsoft
86 (0x0056), (0x), private: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidValueNonRegEx(class std::basic_string_view<char,struct std::char_traits >), 0x00004a7f, Microsoft
87 (0x0057), (0x), private: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidValueRegEx(class std::basic_string_view<char,struct std::char_traits >), 0x0000614a, Microsoft
88 (0x0058), (0x), public: class std::shared_ptr __cdecl opentelemetry::v1::trace::TraceState::Set(class std::basic_string_view<char,struct std::char_traits > const & __ptr64,class std::basic_string_view<char,struct std::char_traits > const & __ptr64) __ptr64, 0x00009d40, Microsoft
89 (0x0059), (0x), public: virtual void __cdecl opentelemetry::v1::trace::NoopSpan::SetAttribute(class std::basic_string_view<char,struct std::char_traits >,class std::variant<bool,int,__int64,unsigned int,double,char const * __ptr64,class std::basic_string_view<char,struct std::char_traits >,class std::span<bool const ,-1>,class std::span<int const ,-1>,class std::span<__int64 const ,-1>,class std::span<unsigned int const ,-1>,class std::span<double const ,-1>,class std::span<class std::basic_string_view<char,struct std::char_traits > const ,-1>,unsigned __int64,class std::span<unsigned __int64 const ,-1>,class std::span<unsigned char const ,-1> > const & __ptr64) __ptr64, 0x0000a6d2, Microsoft
90 (0x005a), (0x), public: static void __cdecl opentelemetry::v1::context::RuntimeContext::SetRuntimeContextStorage(class std::shared_ptr), 0x000020e5, Microsoft
91 (0x005b), (0x), public: virtual void __cdecl opentelemetry::v1::trace::NoopSpan::SetStatus(enum opentelemetry::v1::trace::StatusCode,class std::basic_string_view<char,struct std::char_traits >) __ptr64, 0x0000687f, Microsoft
92 (0x005c), (0x), public: static void __cdecl opentelemetry::v1::trace::Provider::SetTracerProvider(class std::shared_ptr), 0x000064fb, Microsoft
93 (0x005d), (0x), public: static class opentelemetry::v1::context::Context __cdecl opentelemetry::v1::context::RuntimeContext::SetValue(class std::basic_string_view<char,struct std::char_traits >,class std::variant<struct std::monostate,bool,__int64,unsigned __int64,double,class std::shared_ptr,class std::shared_ptr,class std::shared_ptr > const & __ptr64,class opentelemetry::v1::context::Context * __ptr64), 0x00005867, Microsoft
94 (0x005e), (0x), public: virtual class std::shared_ptr __cdecl opentelemetry::v1::trace::NoopTracer::StartSpan(class std::basic_string_view<char,struct std::char_traits >,class opentelemetry::v1::common::KeyValueIterable const & __ptr64,class opentelemetry::v1::trace::SpanContextKeyValueIterable const & __ptr64,struct opentelemetry::v1::trace::StartSpanOptions const & __ptr64) __ptr64, 0x00005dc1, Microsoft
95 (0x005f), (0x), public: class std::basic_string<char,struct std::char_traits,class std::allocator > __cdecl opentelemetry::v1::trace::TraceState::ToHeader(void)const __ptr64, 0x000017d5, Microsoft
96 (0x0060), (0x), private: static class std::basic_string_view<char,struct std::char_traits > __cdecl opentelemetry::v1::trace::TraceState::TrimString(class std::basic_string_view<char,struct std::char_traits >,unsigned __int64,unsigned __int64), 0x0000528b, Microsoft
97 (0x0061), (0x), public: virtual void __cdecl opentelemetry::v1::trace::NoopSpan::UpdateName(class std::basic_string_view<char,struct std::char_traits >) __ptr64, 0x00005880, Microsoft
98 (0x0062), (0x), class std::shared_ptr
private: static class std::shared_ptr<class opentelemetry::v1::context::RuntimeContextStorage> & __ptr64 __cdecl opentelemetry::v1::context::RuntimeContext::GetStorage(void)'::
2'::context, 0x001ea910, Microsoft99 (0x0063), (0x), public: static int const opentelemetry::v1::trace::TraceState::kKeyMaxSize, 0x00166f64, Microsoft
100 (0x0064), (0x), public: static char const opentelemetry::v1::trace::TraceState::kKeyValueSeparator, 0x00166f70, Microsoft
101 (0x0065), (0x), public: static int const opentelemetry::v1::trace::TraceState::kMaxKeyValuePairs, 0x00166f6c, Microsoft
102 (0x0066), (0x), public: static char const opentelemetry::v1::trace::TraceState::kMembersSeparator, 0x00166f71, Microsoft
103 (0x0067), (0x), public: static int const opentelemetry::v1::trace::TraceState::kValueMaxSize, 0x00166f68, Microsoft
104 (0x0068), (0x), class opentelemetry::v1::common::SpinLockMutex
private: static class opentelemetry::v1::common::SpinLockMutex & __ptr64 __cdecl opentelemetry::v1::trace::Provider::GetLock(void)'::
2'::lock, 0x001eab00, Microsoft105 (0x0069), (0x), class std::shared_ptr
public: virtual class std::shared_ptr<class opentelemetry::v1::trace::Span> __cdecl opentelemetry::v1::trace::NoopTracer::StartSpan(class std::basic_string_view<char,struct std::char_traits<char> >,class opentelemetry::v1::common::KeyValueIterable const & __ptr64,class opentelemetry::v1::trace::SpanContextKeyValueIterable const & __ptr64,struct opentelemetry::v1::trace::StartSpanOptions const & __ptr64) __ptr64'::
2'::noop_span, 0x001eaad0, Microsoft106 (0x006a), (0x), class std::shared_ptr
private: static class std::shared_ptr<class opentelemetry::v1::trace::TracerProvider> & __ptr64 __cdecl opentelemetry::v1::trace::Provider::GetProvider(void)'::
2'::provider, 0x001eaae8, Microsoft107 (0x006b), (0x), class std::basic_regex<char,class std::regex_traits >
private: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidKeyRegEx(class std::basic_string_view<char,struct std::char_traits<char> >)'::
2'::reg_key, 0x001ea980, Microsoft108 (0x006c), (0x), class std::basic_regex<char,class std::regex_traits >
private: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidKeyRegEx(class std::basic_string_view<char,struct std::char_traits<char> >)'::
2'::reg_key_multitenant, 0x001ea9f0, Microsoft109 (0x006d), (0x), class std::basic_regex<char,class std::regex_traits >
private: static bool __cdecl opentelemetry::v1::trace::TraceState::IsValidValueRegEx(class std::basic_string_view<char,struct std::char_traits<char> >)'::
2'::reg_value, 0x001eaa60, Microsoft110 (0x006e), (0x), public: class std::shared_ptr __cdecl std::enable_shared_from_this::shared_from_this(void) __ptr64, 0x00003b39, Microsoft
111 (0x006f), (0x), public: class std::shared_ptr __cdecl std::enable_shared_from_this::shared_from_this(void)const __ptr64, 0x00003440, Microsoft
112 (0x0070), (0x), class std::shared_ptr
public: static class std::shared_ptr<class opentelemetry::v1::trace::TraceState> __cdecl opentelemetry::v1::trace::TraceState::GetDefault(void)'::
2'::ts, 0x001ea960, Microsoft113 (0x0071), (0x), public: class std::weak_ptr __cdecl std::enable_shared_from_this::weak_from_this(void) __ptr64, 0x00005600, Microsoft
114 (0x0072), (0x), public: class std::weak_ptr __cdecl std::enable_shared_from_this::weak_from_this(void)const __ptr64, 0x000088a5, Microsoft
Additional context
The built dll is about 2mb. If i've forgotten to add something to the issue let me know and i will add it.
The text was updated successfully, but these errors were encountered: