Comments (6)
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.
I dropped a copy of libcoreclr.so.dbg
in http://linux.microsoft.com/~steve.maclean/
from elfsharp.
I have just tried to download it, but it results in 403.
from elfsharp.
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.
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.
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)
- Test project should target .NET Core only HOT 1
- Provide stream overloads for Mach-O and UImage readers.
- Sections / segments count HOT 2
- Correct all "GithubIssueNo..." test names.
- Fix versioning mess in csproj
- Add the licence info for nuget package.
- MachO: add test for PR #66.
- Handle MachO fat header HOT 2
- Add support for the big endian MachO files
- Add visibility to symbols HOT 2
- Add previous releases changes in CHANGELOG.md HOT 1
- How to read Dwarf files? HOT 17
- Reading Mach-O binary HOT 4
- Get InvalidOperationException while paring Mach-O object file HOT 1
- Doesn't read all notes from ARM core dump file HOT 3
- Is it possible to get variable and structure addresses using elfsharp? HOT 4
- "ELF Number of sections >= SHN_LORESERVE (0xff00)" is not implemented in library HOT 5
- Use StyleCop
- ELFReader methods do not always close streams HOT 3
- Analysis on the definition of symbolic structure HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from elfsharp.