confluentinc / librdkafka

The Apache Kafka C/C++ library
Other
214 stars 3.14k forks source link

How to find PDBs for librdkafka releases? #2706

Open iolazarc opened 4 years ago

iolazarc commented 4 years ago

Where can I find PDBs for the librdkafka.redist 1.3.0 Nuget package? I can see there's a librdkafka.symbols package in Nuget, but it seems to be abandoned (last version was published in 2016) Ideally the symbols should be placed together with the dlls in the package, but it would also be reasonable to have the matching symbols released at the same time (and matching version) as librdkafka.redist. Also, this information should be in the readme file.

Checklist

IMPORTANT: We will close issues where the checklist has not been completed.

Please provide the following information:

edenhill commented 4 years ago

We'll look into this after the next release.

jerrylzy commented 4 years ago

@edenhill Do you still plan to add pdb to the same nuget packages?

edenhill commented 4 years ago

We'll want the PDBs in a separate NuGet package to keep the size down for the common case. There's this PR that addresses this through CMake: https://github.com/edenhill/librdkafka/pull/3042

mariomastrodicasa commented 2 years ago

@edenhill do you have any news? Or, meanwhile you create the NuGet package, do you have a separated storage where the PDBs can be accessed? I have this condition: image with the following exception: Exception thrown at 0x00007FFF409555B3 (ntdll.dll) in XXXXXXX.exe: 0xC0000005: Access violation writing location 0x0000000000000024.

I want to understand if the problem comes from our misuse of the library or it is a real bug. The version of the library is 1.9.0.1.

aybassiouny commented 1 year ago

I think nuget now supports publishing symbols packages https://learn.microsoft.com/en-us/nuget/create-packages/symbol-packages-snupkg that's another option!

mariomastrodicasa commented 1 year ago

@aybassiouny it cannot be an option in my opinion; as stated in the following notes within the link:

Only managed Portable PDBs are supported on NuGet.org's symbol server.

and

Native projects, such as C++ projects, produce Windows PDBs instead of Portable PDBs. These are not supported by NuGet.org's symbol server. Please use Legacy Symbol Packages instead.

This project generates native artifacts and only Legacy Symbol Packages can be an option. However the librdkafka NuGet package supports multiple OSes, not only Windows.

Meanwhile @edenhill and confluent will find a solution, is it possible to attach the PDBs as assets of the published release? This is important because, if I want the PDBs to debug an issue, I shall recompile; but recompiling it is possible to obtain something slightly different from the published artifacts due to many conditions; so at the end, after recompilation, I will debug something different than the one found in the published package😉