Giter Club home page Giter Club logo

Comments (6)

konrad-kruczynski avatar konrad-kruczynski commented on August 25, 2024

Hi!
I'll try to look at the issue this or next weekend. Would it be possible for you to send me the binary to save some time installing .NET core preview?

from elfsharp.

sdmaclea avatar sdmaclea commented on August 25, 2024

I dropped a copy of libcoreclr.so.dbg in http://linux.microsoft.com/~steve.maclean/

from elfsharp.

konrad-kruczynski avatar konrad-kruczynski commented on August 25, 2024

I have just tried to download it, but it results in 403.

from elfsharp.

sdmaclea avatar sdmaclea commented on August 25, 2024

I looked and that server won't allow serving that file. Probably binary files are being denied. I looked for other options, but nothing is easy. Apparently, I don't have a better option than fetching from the symbol server.

These are the simplest instruction I can offer.

# The install using the install script documented here 
# https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-install-script
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin -i $HOME/dotnet.3.1.100-preview2 -v 3.1.100-preview2-014569

# install the dotnet-symbol tool to $HOME/dotnet-symbol/dotnet-symbol
$HOME/dotnet.3.1.100-preview2/dotnet tool install --tool-path $HOME/dotnet-symbol dotnet-symbol

# Use the dotnet-symbol tool get the debug info for libcoreclr.so
$HOME/dotnet-symbol/dotnet-symbol --symbols $HOME/dotnet.3.1.100-preview2/shared/Microsoft.NETCore.App/3.1.0-preview2.19525.6/libcoreclr.so

In case it helps here is the debug info I have off hand.

When I had it open in the VS Code C# debugger it said something about "NoBits" when looking at the section.

Here is the relevant info I could get from objdump.

$ objdump -j ".dynstr" -D -x -s -t libcoreclr.so.dbg

libcoreclr.so.dbg:     file format elf64-x86-64
libcoreclr.so.dbg
architecture: i386:x86-64, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x0000000000000000

Program Header:
    PHDR off    0x0000000000000040 vaddr 0x0000000000000040 paddr 0x0000000000000040 align 2**3
         filesz 0x00000000000001f8 memsz 0x00000000000001f8 flags r--
    LOAD off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**12
         filesz 0x000000000000025c memsz 0x00000000006f8a30 flags r-x
    LOAD off    0x00000000000009b0 vaddr 0x00000000006fa9b0 paddr 0x00000000006fa9b0 align 2**12
         filesz 0x0000000000000000 memsz 0x0000000000095a98 flags rw-
 DYNAMIC off    0x00000000000009b0 vaddr 0x0000000000747808 paddr 0x0000000000747808 align 2**3
         filesz 0x0000000000000000 memsz 0x0000000000000290 flags rw-
    NOTE off    0x0000000000000238 vaddr 0x0000000000000238 paddr 0x0000000000000238 align 2**2
         filesz 0x0000000000000024 memsz 0x0000000000000024 flags r--
EH_FRAME off    0x000000000000025c vaddr 0x00000000006d9084 paddr 0x00000000006d9084 align 2**2
         filesz 0x0000000000000000 memsz 0x000000000001f9ac flags r--
   STACK off    0x0000000000000000 vaddr 0x0000000000000000 paddr 0x0000000000000000 align 2**4
         filesz 0x0000000000000000 memsz 0x0000000000000000 flags rw-
     TLS off    0x00000000000009b0 vaddr 0x00000000006fa9b0 paddr 0x00000000006fa9b0 align 2**4
         filesz 0x0000000000000000 memsz 0x0000000000000079 flags r--
   RELRO off    0x00000000000009b0 vaddr 0x00000000006fa9b0 paddr 0x00000000006fa9b0 align 2**4
         filesz 0x000000000004d650 memsz 0x000000000004d650 flags rw-

Dynamic Section:

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  2 .dynstr       00000fbd  00000000000021b0  00000000000021b0  0000025c  2**0
                  ALLOC, READONLY
SYMBOL TABLE:
00000000000021b0 l    d  .dynstr	0000000000000000 .dynstr



Disassembly of section .dynstr:

00000000000021b0 <.dynstr>:
	...

$ objdump -T libcoreclr.so.dbg 

libcoreclr.so.dbg:     file format elf64-x86-64

objdump: libcoreclr.so.dbg: Invalid operation

I am thinking it might be throwing because the section exists but it is empty?

The ".strtab" section does not exist.

from elfsharp.

konrad-kruczynski avatar konrad-kruczynski commented on August 25, 2024

Ok, I was able to get the file using your instruction, thanks. It seems that dynamic string table is effectively absent in this file, having type NoBits instead of StrTab. So as you said, it formally exists, but it's empty. I'm not sure this is actually legal according to the ELF spec, but the library has to be prepared for this. I have a fix and will soon commit it (it's tiny, actually).

I have an additional question though. Can I include libcoreclr.so.dbg in my test suite (I mean legal reasons)? I guess I can, but would like to ask to be sure.

from elfsharp.

sdmaclea avatar sdmaclea commented on August 25, 2024

Can I include libcoreclr.so.dbg in my test suite (I mean legal reasons)?

It is a file built by LLVM from MIT licensed code. I see no reason you couldn't use it.

Thanks.

from elfsharp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.