On Wed, Nov 08, 2023 at 09:01:15AM -0500, Omair Majid wrote: > Hi, > > "Richard W.M. Jones" <rjones@xxxxxxxxxx> writes: > > > Can you be a bit more specific? What programming language? What does > > the debug data look like? Is it embedded in ELF sections? What tools > > are needed / provided to extract it? How does the debugger read it? > > This is for the .NET ecosystem, where the primary languages include C#, > F# and VB.NET. > > The compiled .NET code files are generally named along the lines of > Foo.dll, and debug data is stored in separate Foo.pdb files. The files > are generated by the .NET compilers directly. The Foo.dll file generally > contains a reference to where the .pdb files are stored (they could be > online, for example, - similar to a debuginfod server - or on the disk > next to the .dll file). > > I am not aware of any non-.NET tools in Fedora that can work with these > files. > > .NET-specific debuggers know how to find the .pdb files when they see a > .dll file. Generally, every IDE provides their own debugger (often > closed source). An open source debugger is available at > https://github.com/Samsung/netcoredbg/ and used by some > (non-Fedora-packaged) open source IDEs. > > To circle back to my original question, the disk layout currently looks > something like this: > > - /usr/lib64/dotnet/shared/$NAME/$VERSION/foo.dll > - /usr/lib64/dotnet/shared/$NAME/$VERSION/foo.pdb I suspect it would be confusing to have debuginfo sometimes contain .pdb files, and it would make all the debuginfo generation code much more complicated. But others are experts about this. However some kind of alternate <package>-windbg standard might work? Who will consume this in Fedora? Is netcoredbg packaged? Can Wine use them? Although we ship a few *.exe files in Fedora now, we got a lot of pushback about this when we proposed it originally (around 2008). There is usually a clear case where we do include them: they are necessary utilities that can run under Wine, or -- like rhsrvany.exe / pnp_wait.exe / qemu-ga -- we need them so we can install the files inside Windows guests. Generally packaging random open source Windows *.exes as Fedora RPMs "just because" is frowned on. > I was thinking that it might be possible to put the .dll file in the > base package (eg, dotnet-runtime-8.0) and the .pdb file in the debug package > (eg, dotnet-runtime-8.0-debuginfo) somehow. It would definitely be technically possible to write some RPM macros that package them, but as above putting them into something specifically called <package>-debuginfo could be confusing. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue